Bonjour tous le monde, j'aurais voulu savoir comment faire pour qu'une variable statique (statique pour qu'elle puisse être utilisé depuis un autre script) soit assigné au seul objet sur lequel elle se trouve et non pas sur tous.
Ou alors y a t'il un autre moyen pour utiliser une variable depuis un autre script sans qu'elle soit en statique ?
Merci ^^
Variable Statique
Re: Variable Statique
Salut,
attention au variables statiques, ça peut cacher un mauvais design de ton jeu.
Si tu sais ce que tu fais tu peux simplement rajouter static en avant de ta déclaration, et ensuite pour y accéder c'est le nom de la classe/script . le nom de la variable.
C#
Sinon pour accéder à un autre objet plusieurs solutions:
- Utiliser GameObject.Find/FindWithTag, ça va chercher l'objet dans ta scène avec le bon nom/tag correspondant.
Attention c'est lourd en terme de performances.
- Utiliser une variable publique du type que tu souhaite récupérer et y glisser ton objet dans l'éditeur:
attention au variables statiques, ça peut cacher un mauvais design de ton jeu.
Si tu sais ce que tu fais tu peux simplement rajouter static en avant de ta déclaration, et ensuite pour y accéder c'est le nom de la classe/script . le nom de la variable.
C#
Code : Tout sélectionner
public static int myInt;
- Utiliser GameObject.Find/FindWithTag, ça va chercher l'objet dans ta scène avec le bon nom/tag correspondant.
Attention c'est lourd en terme de performances.
- Utiliser une variable publique du type que tu souhaite récupérer et y glisser ton objet dans l'éditeur:
Code : Tout sélectionner
public GameObject myGameObject;
Re: Variable Statique
Bon ça marche pas j'ai essayé:
j'ai mis le code
Ensuite j'ai voulu l'utiliser de cette façon:
Ca me met:
Static member `PathGiveLoad.wantedPositon' cannot be accessed with an instance reference, qualify it with a type name instead
j'ai mis le code
Code : Tout sélectionner
public GameObject myGameObject;
Code : Tout sélectionner
myGameObject.GetComponent<PathGiveLoad>().wantedPositon.x=0;
Static member `PathGiveLoad.wantedPositon' cannot be accessed with an instance reference, qualify it with a type name instead
Re: Variable Statique
si wantedPosition est marque static , tu peu pas y acceder en utilisant une instance tel que tu veux le faire.
Si tu veux le faire tel que tu l 'as ecrit , dans ce cas wanterPosition n'a pas besoin d'etre static ( il doit etre public parcontre ).
Si wantedPosition est du genre "public static float wantedPosition", dans ce cas tu as just a ecrire
Si tu veux le faire tel que tu l 'as ecrit , dans ce cas wanterPosition n'a pas besoin d'etre static ( il doit etre public parcontre ).
Si wantedPosition est du genre "public static float wantedPosition", dans ce cas tu as just a ecrire
Code : Tout sélectionner
PathGiveLoad.wantedPosition.x = 0;
Re: Variable Statique
Je vais essayer de la mettre en public alors pour voir, car pour le moment en static le problème est que j'ai l'impression que tous mes scripts utilisant la variable wantedPosition pour mes différents objets se lance en même temps, en prenant en prenant compte des scripts des autres objets et pas seulement celui qui se trouve sur l'objet en question.(si quelqu'un a compris ma phrase xD)
Re: Variable Statique
normal, si c'est une variable static, elle est commune à tout tes script ( c'est le principe), ce que tu souhaite apperemment est une variable d'instance public. donc enlève le mot clé static de ta variable.
(au passage un petit tuto te ferai du bien ^^ )
(au passage un petit tuto te ferai du bien ^^ )
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
Re: Variable Statique
Ouaip merci à vous en enlevant le static et utilisant un getcomponnent c'est bon.