créer dynamiquement un nombre donné de variables

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Kaloverian
Messages : 121
Inscription : 10 Août 2016 03:03

créer dynamiquement un nombre donné de variables

Message par Kaloverian » 26 Mars 2020 03:56

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?

Aelhan
Messages : 65
Inscription : 11 Déc 2019 23:00

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

Message par Aelhan » 26 Mars 2020 06:58

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.
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Kaloverian
Messages : 121
Inscription : 10 Août 2016 03:03

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

Message par Kaloverian » 26 Mars 2020 15:32

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?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5292
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

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

Message par boubouk50 » 26 Mars 2020 15:43

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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

EmileF
Messages : 534
Inscription : 18 Mars 2017 19:39

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

Message par EmileF » 26 Mars 2020 15:47

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);

La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Kaloverian
Messages : 121
Inscription : 10 Août 2016 03:03

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

Message par Kaloverian » 26 Mars 2020 16:01

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é

Répondre

Revenir vers « (C#) CSharp »