Astuce pour bien utiliser les interfaces avec Unity

Cette section est destinée aux scripts partagés par la communauté. Chaque post est destiné à un script. Suivez bien les recommandations.
Reminouche
Messages : 3
Inscription : 31 Jan 2012 19:29

Astuce pour bien utiliser les interfaces avec Unity

Message par Reminouche » 03 Déc 2014 16:15

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.

Image

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: Astuce pour bien utiliser les interfaces avec Unity

Message par LudlowFx » 03 Déc 2014 16:42

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 lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Astuce pour bien utiliser les interfaces avec Unity

Message par Alesk » 05 Déc 2014 12:20

Surtout qu'il y a une erreur dans l'explication...

Code : Tout sélectionner

// Ce qui ne marche pas
killSkill = hitcollider.GetComponent<IKillable> ();
 
// Ce qui marche
killSkill = GetComponent(typeof(IKillable)) as IKillable;
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 :

Code : Tout sélectionner

killSkill = GetComponent<IKillable> ();
ou

Code : Tout sélectionner

killSkill = this.GetComponent<IKillable> ();
ç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.

Répondre

Revenir vers « Scripts »