Je suis actuellement sur un jeu de plateforme, comme la plupart des jeux de ce type j'aimerai que certaines pièces de monnaies puissent se déplacer de gauche a droite par exemple.
Dans un premiers temps j'ai créé l'animation avec la fenêtre Animation. Mais lorsque j'ai voulu mettre l'animation sur tout les pièces a animer, je me suis rendu compte que les valeur de position étaient enregistrés, j'ai compris que je devrais faire une animation pour chaque pièce, ce qui va être assez long et surtout gourmand en ressource par rapport au rendu.
Du coup, je me suis dit que j'allais faire un script que je placerai sur les éléments a animer et ainsi écrire 1 script pour plusieurs dizaine de pièces de monnaies. J'ai donc ma pièce sur la scene avec des objet transparent qui sont Trigger et qui représentent le point A et le point B que j'ai tag respectivement Sens1 et ContreSens.
Voici mon problème, lorsque je lance la scène, la pièce se déplace avec mon point B et lorsqu'elle le touche elle s'arrête sur place au lieu de repartir dans le sens inverse. En bidouillant les valeur de vitesse je me rends compte que l'animation marche mais les valeur s'emballent. Je m'en remet donc a vos conseil pour me dire comment faire en sorte que la pièce reparte correctement vers le point A et ainsi de suite.
Voici le code en JavaScript que j'ai écrit :
Code : Tout sélectionner
#pragma strict
// GameObjects
var piece : GameObject; //L'objet ou est placé ce script
var objetInfo : GameObject; // L'objet percuté, ici mes point A et B
// Constante
var vitesse : int = 10;
function AnimerPiece(){
piece.gameObject.GetComponent.<Rigidbody>().AddForce(vitesse, 0, 0);
print("La piece se deplace vers" + vitesse);
}
AnimerPiece();
function OnTriggerEnter(objetInfo : Collider){
if(objetInfo.gameObject.tag == "Sens1" && vitesse < 0){
vitesse = vitesse * -1;
AnimerPiece();
}
if(objetInfo.gameObject.tag == "ContreSens" && vitesse > 0){
vitesse = vitesse * -1;
AnimerPiece();
}
}
Creamydelux