Semaine 5, il me manque une fonctionnalité importante à ajouter à mon jeu : la capacité d'ajouter facilement des objets et de créer le code pour leurs interactions.
L'idée était la suivante : je veux ajouter dynamiquement des événements (Events) à mes GameObjects interactifs en utilisant la réflexion (reflection). Je construis simplement une chaîne de caractères avec le nom de l'objet suivi du type d'action.
Je crée une classe partielle InGameEvent, afin de pouvoir faire une copie pour chaque interaction. Essentiellement, une grande partie du gameplay sera contenue dans cette classe. Et, grâce à ChatGPT, j'ai appris que l'attribut [Preserve] indique au compilateur de conserver les méthodes dans le MSIL généré (Intermediate Language) même si aucun code n'y fait directement référence — ce qui est mon cas, puisque je récupère une méthode par son nom sous forme de chaîne et que je l'appelle via Invoke().
InGameEvent
[Preserve]
Invoke()
Je passerai ensuite quelques jours à ajouter des événements pour divers objets, ainsi qu'à écrire un peu de code pour :
Enfin, je reviendrai sur le rendu de l'herbe, et après quelques recherches, je trouve une solution qui est à la fois plus jolie et plus efficace.
Et j'ajouterai le logo, pour avoir un build un peu plus présentable.