J'essaie de téléporter un objet à différents endroits dans un ordre spécifique dans Unity, mais le système ne passe pas par la boucle imbriquée pour l'emplacement de téléportation suivant. J'ai préalloué les emplacements de téléportation dans un tableau 2d en m'attendant à ce que le système passe par le tableau 2d à travers la boucle imbriquée et déplace l'objet en conséquence, mais il ne fait que déplacer l'objet à l'emplacement SP3 sans tenir compte des éléments de l'index track_teleporation_index. Je suppose donc qu'il y a une erreur dans les instructions if-else if dans les boucles for imbriquées, mais en tant que débutant en codage et en Unity, je n'arrive pas à trouver la solution après des jours de dépannage.
Toute aide ou piste sera grandement appréciée !
Elle est mon code :
public class Teleporting : MonoBehaviour
{
public GameObject mouse;
public Transform SP1; //Starting Position in Track 1
public Transform SP2; //Starting Position in Track 2
public Transform SP3; //Starting Position in Track 3
private int[,] track_teleportation_index;
void OnTriggerEnter(Collider other)
{
mouse = GameObject.Find("mouse");
track_teleportation_index = new int[3, 3] { { 1,2,3 }, { 3, 1, 2 }, { 1, 2, 3 } };
for (int row = 0; row < track_teleportation_index.GetLength(0); row++)
for (int col = 0; col < track_teleportation_index.GetLength(1); col++)
{
if (track_teleportation_index[row, col] == 1)
{
mouse.transform.position = SP1.transform.position;
}
else if (track_teleportation_index[row, col] == 2)
{
mouse.transform.position = SP2.transform.position;
}
else if (track_teleportation_index[row, col] == 3)
{
mouse.transform.position = SP3.transform.position;
}
Debug.Log("Teleported to track #" + track_teleportation_index[row, col]);
}
}
}