Tracer une grille 6x10

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tracer une grille 6x10

Message par boubouk50 » 22 Août 2023 15:15

juliuson a écrit :
22 Août 2023 12:54
Le problème c'est qu'il n'apparait rien à l'écran.
Merci de faire l'effort d'information. Cela ne nous dit rien du tout.
Tu as instancié des objets, donc ils sont présents.
Ils ont donc des positions, des tailles, etc.
Donne-nous ces détails !
Ils n'apparaissent pas = Pas instanciés ? scale = 0 ? Hors caméra ? Erreur ? Désactivés ? etc
Tu as déjà TOUTES CES INFORMATIONS avec toi, donc tu as la réponse. PAS NOUS.

Tes posts prennent toujours 50 réponses et 15 jours alors que souvent, si tu faisais l'effort d'information, cela pourrait prendre 2 réponses et une journée max.
"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

juliuson
Messages : 102
Inscription : 03 Mai 2017 18:00

Re: Tracer une grille 6x10

Message par juliuson » 25 Août 2023 20:31

Bonjour à tous,

J'essaye de créer des cases colorées en bleu dans la grille.

Pour cela j'utilise le code suivant:
private void Start()
{
Grille[1, 2] = -1;
Grille[6, 4] = -1;
Grille[1, 1] = -1;

DrawGrid();
}

void DrawGrid()
{
Vector3 startPosition = transform.position;

float horizontalOffset = Colonnes * cellSize * 0.5f - cellSize * 0.5f;
float verticalOffset = Lignes * cellSize * 0.5f - cellSize * 0.5f;

for (int row = 0; row <= Lignes; row++)
{
for (int col = 0; col <= Colonnes; col++)
{

// if ((Grille[row, col] == -1) && (Grille[row, col - 1] == -1))
{
Vector3 position = startPosition + new Vector3(col * cellSize - horizontalOffset, -row * cellSize + verticalOffset);
if (col < Colonnes)
{
CreateLine(verticalLinePrefab, position + new Vector3(cellSize / 2, 0, 0));
}

if (row < Lignes)
{
CreateLine(horizontalLinePrefab, position - new Vector3(0f, cellSize / 2, 0f));
}
}
}
}
}


void CreateLine(Image linePrefab, Vector3 position)
{
Image newLine = Instantiate(linePrefab, position, Quaternion.identity);
newLine.transform.SetParent(transform);
}

}


Le problème c'est que le quadrillage disparaît à l'écran quand j'utilise l'expression ci-dessous:
if ((Grille[row, col] == -1) && (Grille[row, col - 1] == -1)) 
Au lieu de dire de ne pas tracer la ligne verticale (verticalLinePrefab) entre les 2 cases vides et voisines en haut):

Image

Le problème peut peut-être se régler en jouant avec row et col: if ((col == 6) && (row == 0)) par exemple.
Je ne comprends pas pourquoi le quadrillage disparaît à l'écran quand j'utilise l'expression ci-dessous:
if ((Grille[row, col] == -1) && (Grille[row, col - 1] == -1)).


Merci pour votre aide,

A+

Répondre

Revenir vers « Scripting »