Voici une petite astuce que vous rencontrerez si vous utilisez les interfaces C# dans vos jeux Unity.Unity
Si vous déclarez une interface dans vos attributs public de votre script Unity, vous ne pourrez pas binder dans l’éditeur Unity une instance de script sur cet attribut. Plutôt embêtant mais voici la solution.
Ça me permet également d'inaugurer mon blog qui parlera de tout un de tas techno... mais pas mal d'Unity3D !
A bientôt.
Astuce pour bien utiliser les interfaces avec Unity
-
- Messages : 3
- Inscription : 31 Jan 2012 19:29
Re: Astuce pour bien utiliser les interfaces avec Unity
Sujet déplacé !
Merci de partager le script en clair ici aussi. Autant avoir tout sous les yeux plutôt que de renvoyer vers un site externe uniquement !
Merci de partager le script en clair ici aussi. Autant avoir tout sous les yeux plutôt que de renvoyer vers un site externe uniquement !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Re: Astuce pour bien utiliser les interfaces avec Unity
Surtout qu'il y a une erreur dans l'explication...
C'est normal que la première ligne ne donne pas le même résultat que que la seconde : tu ne fais pas l'appel de GetComponent sur le même objet !
Si tu fais : ou
ça fonctionnera tout aussi bien que ta seconde ligne.
Donc le souci ne vient pas de la syntaxe, mais d'une confusion d'objet sur lequel tu vas chercher le component.
Code : Tout sélectionner
// Ce qui ne marche pas
killSkill = hitcollider.GetComponent<IKillable> ();
// Ce qui marche
killSkill = GetComponent(typeof(IKillable)) as IKillable;
Si tu fais :
Code : Tout sélectionner
killSkill = GetComponent<IKillable> ();
Code : Tout sélectionner
killSkill = this.GetComponent<IKillable> ();
Donc le souci ne vient pas de la syntaxe, mais d'une confusion d'objet sur lequel tu vas chercher le component.