Dernier message
Portrait de MonsieurFg
Inscrit le : 21/10/2013
Commentaires : 32
Messages : 60
#1
Message Sujet: [Unity] Architecture d'une scène     07/01/2016 à 07:57

M'sieurs dames,

J'ai plongé dans Unity depuis quelques temps.
Je m'en sors sans trop de problèmes (l'internet est foisonnant de questions/réponses permettant de régler les mini blocages etc).

J'ai néanmoins une question de fond sur laquelle je n'arrive pas à trouver de littérature.
Je sais bien qu'on n'est pas sur un site spécialisé mais j'aime bien ce forum alors j'en profite.

Ma question :
Quelle est la "bonne pratique" pour goupiller l'aspect "intelligence" (objets, attributs, méthodes utilitaires etc), l'aspect "gestion graphique" (placement, déplacement, rotation) et l'aspect "évènementiel" (moteur à état, gestion des inputs du joueur etc) ?

Je prends un exemple (car ma question est surement très floue) :
Imaginons un jeu 2D vu de dessus avec un personnage navigant dans des pièces fermées par des portes.
- J'ai un gameobject (en prefab) Porte qui est défini par un Sprite, un Collider2D, un script C# qui matérialise la porte (ouvert/fermé notamment).
- Quand je click sur la porte, ça ouvre un panel "pop up" qui permet de choisir des actions dont "déverrouiller". (panel avec un button qui gère le onClick)
- Quand je click sur le bouton "déverrouiller", cela ouvre un mini jeu qui si il est remporté ouvre la porte. Le mini jeu est instancié.
- Quand le mini-jeu est terminé avec succès la porte doit être ouverte.

Actuellement j'ai fait ainsi :
- La Porte a en référence la barre d'action.
- Quand je click sur la Porte le script de gestion de la barre d'action est appelé pour l'afficher au bon endroit en passant en paramètre la référence de la Porte.
- Le bouton de la barre d'action renvoie également vers le script de gestion de la barre d'action dans une autre méthode qui déclenche l'instanciation du mini-jeu (en passant en référence la barre d'action). Au passage je stocke l'action en cours.
- Quand le mini-jeu est terminé je fais un sendmessage vers la référence de la barre d'action.
- La barre d'action recoit le message et comme l'action en cours est "déverrouiller" elle fait également un sendmessage d'une méthode openPorte vers la Porte qui est en référence sur la barre d'action.

Ca fonctionne.
Mais je trouve que c'est un brin bricolesque.
Ya pas mieux en terme d'organisation logique ?
Ya-t-il de la litterature (livres inclus) démystifiant les bonnes pratiques (et/ou design pattern) pertinent dans le développement autour de Unity ?

PS : désolé du pavé, en espérant avoir été compréhensible.
PS2 : Bonne année et longue vie (et prospérité) à IndieMag Content

Merki d'avance : )