Variable Statique

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Variable Statique

Message par Idolo » 09 Avr 2015 18:58

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 ^^

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Variable Statique

Message par cayou66 » 09 Avr 2015 19:02

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#

Code : Tout sélectionner

public static int myInt;
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:

Code : Tout sélectionner

public GameObject myGameObject;

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: Variable Statique

Message par Idolo » 09 Avr 2015 19:21

Bon ça marche pas :/ j'ai essayé:
j'ai mis le code

Code : Tout sélectionner

public GameObject myGameObject;
Ensuite j'ai voulu l'utiliser de cette façon:

Code : Tout sélectionner

myGameObject.GetComponent<PathGiveLoad>().wantedPositon.x=0;
Ca me met:
Static member `PathGiveLoad.wantedPositon' cannot be accessed with an instance reference, qualify it with a type name instead

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Variable Statique

Message par giyomuSan » 10 Avr 2015 00:04

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

Code : Tout sélectionner

PathGiveLoad.wantedPosition.x = 0;

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: Variable Statique

Message par Idolo » 10 Avr 2015 08:29

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)

sotec
Messages : 542
Inscription : 21 Sep 2012 10:11

Re: Variable Statique

Message par sotec » 10 Avr 2015 09:16

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 ^^ )
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: Variable Statique

Message par Idolo » 10 Avr 2015 10:04

Ouaip merci à vous en enlevant le static et utilisant un getcomponnent c'est bon.

Répondre

Revenir vers « Scripting »