IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Utilisation orientée objet de Unity


Sujet :

Unity

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Utilisation orientée objet de Unity
    Bonjour !

    Je bosse actuellement sur unity pour un petit projet de jeu 2D en études d'info.
    J'ai eu un peu de mal à me familiariser avec, et ce pour une raison. Tous les tutos que j'ai trouvés parlent de comment faire une démo simple à l'aide de scripts copiés/collés/légèrement adaptés.

    J'ai commencé à me faire plaisir quand j'ai découvert que oui, unity est orienté objet. Chose dont j'ai douté pendant plusieurs jours. J'ai très peu d'expérience en orienté objet, et le ":monobehaviour" ne m'a pas fait réaliser qu'il s'agissait d'héritage.

    C'est pourquoi j'ai pensé qu'il y avait un problème. Pourquoi personne n'en parle ? En tout cas, pas dans les pages habituellement consultées par les débutant.
    Ca me paraît évident maintenant : le C# est un langage objet. Mais n'importe quel débutant arrivant sur Unity ne trouvera pas ça évident. Comment faire quelque chose de propre sans utiliser classes, héritages, sans parler de la conception à plus haut niveau ? Au final, ce que beaucoup de tutos proposent, c'est de la bidouille pour obtenir une démo jouable...

    Suis-je le seul à avoir ce sentiment ?

  2. #2
    Membre expérimenté
    Avatar de Greg Latiner
    Homme Profil pro
    Développeur JV
    Inscrit en
    Février 2014
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur JV

    Informations forums :
    Inscription : Février 2014
    Messages : 341
    Points : 1 313
    Points
    1 313
    Par défaut
    C# et Unity sont deux choses différentes. Le C#, langage à part entière, existait bien avant la naissance d'Unity. Il m'a toujours paru évident qu'avant de se lancer dans le codage en C# avec Unity il était bon déjà de se former aux bases de ce langage (voir de la programmation au sens large), et là, on ne s'oriente pas vers des tuto d'Unity pour cela, mais vers des formations en C#.
    Après seulement, une fois les bases minimum acquises, on peut se lancer un tant soit peu dans l’apprentissage d'Unity au niveau du code, et de son intégration au niveau de l'outil.
    Et personnellement je n'ai pas l'impression de bidouillage dans les codes au sein des démo (du moins sur les plus sérieuses), en particulier celles fournies par Unity.
    Mais ce qui est vrai, c'est que les codes sont résolument simples, destinés aux débutants, et qu'ils n'offrent donc pas tous les mécanismes possible de la programmation orienté objet. Leur but n'est pas de faire une démo du C#, mais bel et bien d'introduire les concepts liés à l'utilisation de scripts au sein d'applications Unity.
    Quand à MonoBehaviour, la doc (le truc qu'on zappe souvent quand on débute ) est on ne peut plus claire: MonoBehaviour is the base class every script derives from.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    D'accord je vois.
    Dans les classes que je traite actuellement, je les ai séparées dans deux dossiers : les classes monobehaviour (type PlayerScript, CameraScript etc), et les autres, comme la classe mère Storage qui n'hérite de personne et qui a plusieurs classes filles. Je pensais ensuite exploiter ces classes en les instanciant dans les gameobjects (exemple, mon player a un inventaire de ressources, je fais un new RessourceStorage dans le playerscript).

    Même si ce n'est qu'un projet test, je tiens à garder une bonne approche niveau conception : est-ce la "bonne" manière de faire, ou suis-je totalement à côté ?
    Certains parlent de "component based software engineering"'

    Merci beaucoup en tout cas !

    // Et au passage, sympa ton projet, j'irai tester

  4. #4
    Membre expérimenté
    Avatar de Greg Latiner
    Homme Profil pro
    Développeur JV
    Inscrit en
    Février 2014
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur JV

    Informations forums :
    Inscription : Février 2014
    Messages : 341
    Points : 1 313
    Points
    1 313
    Par défaut
    Re-salut,

    Déjà, la simple démarche de chercher à bien structurer ton projet est une très bonne approche, qui n'est malheureusement pas si souvent adopté (même pour des projets test).
    En suite, concernant l'organisation de tes répertoires, par exemple pour tes scripts, je ne pense pas qu'il existe de règle fixe sur ce point.
    C'est avant tout une histoire d'organisation personnelle, inscrite dans tes document de travail, et si tu bosse en équipe, validé par tous.
    Perso dans mon cas, dans le dossier Player, j'y met tous les scripts liés à sa gestion (qu'ils soient monobehaviour ou non). J'ai aussi un dossier pour chaque level. Bref, chacun sa méthode finalement.

    Tiens, si cela t’intéresse, voici un lien vers Unity3D Best Practices , et tu as un chapitre nommé Naming Standard and Folder Structure (il y a des trucs à piocher dans le reste aussi ceci dit).
    Bonne lecture

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup, c'est génial !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/08/2013, 18h37
  2. Réponses: 8
    Dernier message: 21/02/2012, 18h21
  3. Réponses: 1
    Dernier message: 28/05/2011, 21h03
  4. Quand utiliser la programmation orientée objet?
    Par funtim78 dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2009, 22h27
  5. [POO] Utilisation de PHP Orienté Objet
    Par Gibou dans le forum Langage
    Réponses: 7
    Dernier message: 26/11/2006, 02h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo