Salut à tous,
Je viens de créer une grille 5x5, et une pièce rectangulaire que l'on place dans cette grille.
Tout se passe parfaitement.
Le problème intervient lorsque je veux appliquer une rotation à cette grille.
Je stocke les variables obj dans un tableau objArray(voire code) qui va de 0 à 25 (5x5).
1 2 3 4 5 6 7 8 9
|
for (float i = -Lignes / 2; i < Lignes / 2; i++)
for (float j = -Colonnes / 2; j < Colonnes / 2; j++)
{
Vector3 worldPosition = new Vector3(i, 0f, j) * 1.6f;
obj = Instantiate(gridCellPrefab, worldPosition, Quaternion.identity);
objArray[k] = obj;
k++; |
Puis je réutilise cas valeurs avec la fonction RotateAround (voir code) :
1 2 3 4 5 6 7 8 9 10 11
|
public static Transform[] objArray = new Transform [25];
void OnMouseDown()
{
for (int i = 0; i < 25; i++)
{
objArray[i].RotateAround(Vector3.zero, Vector3.up, 90f);
}
} |
Le problème, c'est que quand je place une pièce rectangulaire dans la grille et que j'applique une rotation,
le rectangle sort de la grille, comme si la grille et le rectangle ne tournaient pas aussi par rapport au même centre (voire vidéo ci-dessous)
Le deuxième problème, c'est que lorsque je clique sur le bouton rotation (ici, une capsule) la grille ne tourne pas sur elle-même.
Pourtant j'utilise bien l'expression suivante:
RotateAround(Vector3.zero, Vector3.up, 90f);
Merci pour votre aide,
A+
Partager