Page 1 sur 1

créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 03:56
par Kaloverian
bonjour,

Je n'utilise qu'un seul script dans lequel
j'ai besoin de créer un nombre de variables de type float dans le début du code du script.
Ce nombre étant donné par une entrée dans l'inspector grâce à l'instruction au début de ce script:

Code : Tout sélectionner

public float[] tableau;  //on choisira par exemple N=3 dans l'inspector
Je dois alors avoir au début de mon code:

Code : Tout sélectionner

float a1,a2,a3;   //déclaration de 3 variables de type float
Si j'avais entré dans l'inspector N=5 par exemple
je devrais avoir au début de mon code

Code : Tout sélectionner

float a1,a2,a3,a4,a5   //déclaration de 5 variables de type float
etc...

Il y a là une technique de programmation que je ne connais pas.
Peut-on m'aider?

Re: créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 06:58
par Aelhan
Bonjour,

En fait tu n'auras jamais un script modifié par l'inspecteur. Dans ton code, les variables que tu pourras utiliser et appeler seront tableau[0], tableau[1],... qui auront pour valeur ce que tu as renseigné dans l'inspecteur.

Re: créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 15:32
par Kaloverian
Admettons que je commence le script comme ceci:

Code : Tout sélectionner

float a1,a2,a3;
public float[] tableau;//je rentre dans l'inspector une valeur de N par exemple 3

void Update()
{
tableau[0]+=a1;     //ça ne marchera pas car chaque élément du tableau ne peut varier comme une variable
tableau[1]+=a2;     //ça ne marchera pas car chaque élément du tableau ne peut varier comme une variable
tableau[2]+=a3;   //ça ne marchera pas car chaque élément du tableau ne peut varier comme une variable

tableau[0]=a1;  //marchera mais c''est le premier cas de figure qui m'intéresse
tableau[1]=a2;  //marchera mais c''est le premier cas de figure qui m'intéresse
tableau[2]=a3;  //marchera mais c''est le premier cas de figure qui m'intéresse
}
Une solution?

Re: créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 15:43
par boubouk50
Salut,

Là, va falloir aller faire les tutos de base de la programmation C# orientée objet (si possible pour Unity).
OpenClassRoom et consort ont ce qu'il faut pour cela.
Là, tu as besoin de savoir comment fonctionne les tableaux (Array) car c'est ce dont tu as besoin. Donc apprend correctement ce que c'est. Une fois le concept et l'utilisation comprise, tu regarderas ensuite les listes.

Re: créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 15:47
par EmileF
Salut,

Je ne comprends pas où est ta difficulté:

Si tu déclares une variable publique genre:

Code : Tout sélectionner

public float[] tableau;
Tu pourras la modifier dans l'inspecteur en ajustant Size pour le nombre de valeurs et en mettant dans chaque élément les valeurs que tu voudras (a1, a2, a3)

ainsi tableau[0] aura la valeur de l'élément zéro, soit (a1) et ainsi de suite.
Comme tu le précises dans la portion de script pour laquelle tu précises que ça marchera

Si ce n'est pas ça que tu veux, tu as les List pour lesquelles tu as la fonctions Add qui te permet d'ajouter des valeurs simplement exemple

Code : Tout sélectionner


float a1 = ...;
float a2 = ...;
float a3 = ...;

List<float> tableau = new List<float>()
tableau.Add(a1);
tableau.Add(a2);
tableau.Add(a3);


Re: créer dynamiquement un nombre donné de variables

Publié : 26 Mars 2020 16:01
par Kaloverian
Je crois que je me suis trompé

Code : Tout sélectionner

public float[]tableau;
float a1;

void Update()
{  tableau[0]+=a1;
    print("tableau[0]"+tableau[0]);
}

fonctionne !
d'où sujet inutile
Désolé