Comment créer dans l'inspector un tableau à 2 dimensions ?

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

Comment créer dans l'inspector un tableau à 2 dimensions ?

Message par Kaloverian » 21 Mars 2020 19:43

bonjour,

Comment déclarer un tableau à 2 dimensions pour obtenir un tableau du vecteur 3 où N est le nombre de vecteurs?
J'ai au début du code:

Code : Tout sélectionner

public int N;
lorsque le script est compilé et attaché à l'objet, j'entre manuellement dans le composant de script une valeur de N
par exemple N = 5
Je reçois ensuite dans ce composant de script de l'inspecteur 5 nouveaux champs vectoriels 3 à remplir manuellement (soit 15 entrées)

J'ai trouvé un code intéressant là:
https://owlcation.com/stem/Using-Single ... nd-Unity3D
mais ça n'a rien donné(je ne sais quel nom de fichier script dois-je attribuer)

Peut-on m'aider?

merci

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7726
Inscription : 30 Juil 2011 13:57

Re: Comment créer dans l'inspector un tableau à 2 dimensions ?

Message par Max » 21 Mars 2020 20:15

Bonsoir,

je ne suis pas sûr d'avoir compris complètement le but que tu poursuis.
Si tu veux déclarer et renseigner un tableau de Vector3 dans l'inspector, tu écris simplement par exemple:

Code : Tout sélectionner

    public Vector3[] vecteurs;
ce qui donne dans l'inspector:

Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

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

Re: Comment créer dans l'inspector un tableau à 2 dimensions ?

Message par Kaloverian » 21 Mars 2020 20:32

et oui
merci bien !

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

(suite)Comment créer dans l'inspector un tableau à 2 dimensions?

Message par Kaloverian » 21 Mars 2020 23:00

oups, j'ai oublié cette question

Comment déclarer un tableau à 2 dimensions pour obtenir un tableau de tableau[P] où N est le nombre de tableaux[P]?
J'ai au début du code:
public int N;
lorsque le script est compilé et attaché à l'objet, j'entre manuellement dans le composant de script une valeur de N
par exemple N = 5
Je reçois ensuite dans ce composant de script de l'inspecteur 5 nouveaux champs de tableau[P] à remplir manuellement (soit 5*P entrées)

j'ai essayé de créer un nouveau type nouveau_type en passant par une structure à P éléments de même type.

ensuite:
public nouveau_type[] vecteurs;

mais ça n'a pas marché!
Pourquoi?

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7726
Inscription : 30 Juil 2011 13:57

Re: (suite)Comment créer dans l'inspector un tableau à 2 dimensions?

Message par Max » 22 Mars 2020 11:39

Bonjour,
Kaloverian a écrit :
21 Mars 2020 23:00
j'ai essayé de créer un nouveau type nouveau_type en passant par une structure à P éléments de même type.

ensuite:
public nouveau_type[] vecteurs;
comment est écrite ta structure ? Poste ton code.

Lien utile: https://docs.unity3d.com/ScriptReferenc ... zable.html
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

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

Re: Comment créer dans l'inspector un tableau à 2 dimensions ?

Message par Kaloverian » 22 Mars 2020 16:22

merci !
ce dernier lien m'a permis d'obtenir ce que je voulais

Néanmoins, dans ce lien est-ce que les termes:
[Serializable] [SerializeField]
sont nécessaires dans le code?

Voici mon code bon:

Code : Tout sélectionner

using System;
using UnityEngine;

public class tableau_de_tableau_dans_inspector : MonoBehaviour
{
    //Create a custom struct and apply [Serializable] attribute to it
    [Serializable]
    public struct PlayerStats [
    {
        public float a;
        public float b;
        public float c;
        public float d;
        public float e;
    }

    //Make the private field of our PlayerStats struct visible in the Inspector
    //by applying [SerializeField] attribute to it
    [SerializeField]
    public PlayerStats[] vecteur;
}


Répondre

Revenir vers « (C#) CSharp »