Bonsoir,
J'ai mis le post en (Résolu) mais il s'avère que je rencontre un autre problème, merci de me dire si je dois refaire un autre post ou modifier le titre.
Ma premiere partie devait faire que mon cube se déplace et s'arrete quand il rencontre un mur avec une rectification de la position qui n'était pas terrible ce qui était le motif inital du post et çà fonctionne parfaitement quelque soit la direction du cube.
Alors j'ai passé une semaine complète à tester et tenter de solutionner mon problème mais en vain rien à faire.
Voici le topo, j'ai pour la suite de mon jeu dupliqué le cube qui se déplace (Il y en aura plusieurs), donc j'ai dans la scène maintenant deux cubes qui sont sensés se rencontrer c'est là que mon problème commence, pour donner un exemple précis du problème rencontré, j'ai le cube 1 qui est en Z -4 et le cube 2 en position Z -1 quand mon cube 1 se déplace et qu'il touche le cube 2, le cube 1 rentre dans le cube 2 ?! suite à des tests j'ai laissé le cube 1 en position Z -4 mais j'ai placé le cube 2 en Z 2 dans ce cas le cube 1 s'arrete parfaitement devant le cube 2, le problème est identique dans les déplacement dans l'axe X, donc pour résumer mes tests un départ dans une position négative doit avoir un arret dans une valeur positive pour que ça fonctionne et vis versa un départ dans une valeur positive doit s'arreter dans une valeur négative pour que ça fonctionne.
Vous pouvez me dire d'ou viens le problème ?
Merci.
Mon code pour un déplacement dans l'axe Z:
Code : Tout sélectionner
// VARIABLES //////////////////////////////////////////////////////////////////////////////
int speed = 3;
public int action;
public int contact;
public Transform conteneurcube;
// ACTIVER LE CUBE //////////////////////////////////////////////////////////////////////////////
void OnMouseDown() {
if (contact == 0) {
action = 1;
}
}
// ON TRIGGER ENTER //////////////////////////////////////////////////////////////////////////////
void OnTriggerEnter() {
contact = 1;
action = 0;
Vector3 localPosition = conteneurcube.transform.localPosition;
localPosition.z = (int) localPosition.z;
conteneurcube.transform.position = localPosition;
}
// ON TRIGGER EXIT //////////////////////////////////////////////////////////////////////////////
void OnTriggerExit() {
contact = 0;
}
// UPDATE //////////////////////////////////////////////////////////////////////////////
void Update() {
if (action == 1) {
conteneurcube.transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
} // FIN UPDATE //////////////////////////////////////////////////////////////////////////////
} // FIN SCRIPT //////////////////////////////////////////////////////////////////////////////