Lorsque je clique sur une capsule (qui sert de bouton) le code affiche le pentamino U1 (GameObject) si on clique une fois sur la capsule.
Pareil pour les 3 autres pentaminos (U2, U3, U4).
Les pentaminos sont situés à la place d'un cube (positionné à un endroit dans le bas de la scène).
Le problème, c'est que si je fais un quatrième clic (OnMouseDown et OnMouseUp) le quatrième pentamino U4 apparait trop haut de 1 float.
J'ai beau changer les valeurs de offsetY et offsetZ, rien ne fait redecendre le pentamino U4 (lors du quatrième clic sur la capsule).
Pouvez vous corriger mon code:
Code : Tout sélectionner
void MakePentaminoU()
{
// Désactiver tous les mini-pentaminos U avant de choisir celui qui sera affiché.
foreach (var mini in minisPentaminosU)
mini.SetActive(false);
// Vérification de l'état du compteur et incrémentation.
int index = counter % minisPentaminosU.Length; // Calcul de l'index en fonction du compteur
// Sélectionner le pentamino à afficher.
miniPentamino = minisPentaminosU[index];
miniPentamino.SetActive(true);
// Position de base à partir du premier cube de référence
Vector3 position = cubes[0].transform.position;
// Debug pour vérifier la position de départ
int offsetY = 0; // Déplacement sur l'axe Y
int offsetZ = 0; // Déplacement sur l'axe Z
// Définir des décalages selon l'index
switch (index)
{
case 0: // U0
case 1: // U1
case 2: // U2
offsetZ = 1; // Décalage en Z pour U0, U1, U2
break;
case 3: // U3
offsetY = 1; // Remontée de 1 en Y pour U3
offsetZ = 1; // Décalage en Z
break;
case 4: // U4
offsetY = -1; // Décalage en Y pour U4 (descente en Y)
offsetZ = 1; // Décalage en Z
break;
default:
break;
}
// Appliquer les décalages sur la position
position += new Vector3(0, offsetY, offsetZ);
// Appliquer la position finale calculée
miniPentamino.transform.position = position;
// Incrémenter le compteur pour le prochain clic
counter++;
}
Merci pour votre aide,
A+