Bonsoir,
J'ai repris mon code javascript précedent pour le terminer vu que j'ai passé pas mal de temps dessus je voudrais arriver au résultat escompter, j'ai inserrés des quads dans un gameObjet vide (cont_cube_1) pour contenir les faces de mon cube, actuellement j'ai un script que je test pour une première face pour l'axe z, alors ça fonctionne très bien quand mon cube est dans une valeur positive en (
z) là il se déplace en mouvement d'une case, mais en valeur négative il avance directement d'une case, j'ai passé pas mal d'heures dessus mais je n'ai pas trouvé de solution, un peu d'aide serait la bienvenue.
Mon code complet pour une face:
Code : Tout sélectionner
public var bloc: GameObject; // Obstacle
public var cont_cube_1:Transform; // On désigne le cube à diriger, celui-ci contient la face à cliquer et un collider sur la face opposée
public var cubeSelection: int = 0; // Déplacement
public var posi_cont_cube_1: int = 0; // Position de départ du conteneur
public var posi_enCours: int = 0; // Position en cours du conteneur
public var contact: int = 0; // Si contact avec un autre objet on passe la variable sur 1
// ONMOUSEDOWN ///////////////////////////////////////////////////////////////
function OnMouseDown() {
posi_cont_cube_1 = cont_cube_1.transform.localPosition.z;
if (contact == 0) { // Si le contact est à zéro alors le cube n'a pas d'obstacle en z
cubeSelection = 1; // Autorisation de déplacement
}
}
// ON TRIGGER ENTER /////////////////////////////////////////////////////
function OnTriggerEnter (other : Collider) {
if (other.gameObject.tag == "bloc") {
contact = 1;
}
}
// ON TRIGGER EXIT /////////////////////////////////////////////////////
function OnTriggerExit (other : Collider) {
if (other.gameObject.tag == "bloc") {
contact = 0;
}
}
// UPDATE ///////////////////////////////////////////////////////////////
function Update () {
posi_enCours = cont_cube_1.transform.localPosition.z;
if (posi_enCours > posi_cont_cube_1) {
cubeSelection = 0; // Je stop le cube
cont_cube_1.transform.position.z = posi_enCours; // Je corrige avec précision la position du cube en utilisant la valeur "posi_enCours"
}
if (cubeSelection == 1) {
cont_cube_1.transform.Translate(Vector3(0,0,2) * Time.deltaTime); // Le cube peut ce déplacer
}
} // Fin de l'Update