Je me tourne vers vous car j'ai un petit soucis.
Je m'explique : je fais tourner un objet sur l'axe X avec un hinge joint. J'aimerais faire en sorte que mon objet revienne à sa position d'origine lorsque j'appuie sur Z tout en restant en mouvement sur le même axe et une fois arrivé à sa position d'origine, qu'il s'arrête.
J'ai essayé de résoudre mon problème par le biais d'une boucle (while) dans la fonction update sauf que celle-ci freeze Unity comme j'ai pu le constater sur certains forums.
Dans l'attente de vos réponses.
Code : Tout sélectionner
var myval = 0.2;
var Vmax = 70.0;
var spawnRot : Quaternion;
var spawnPos : Vector3;
function Start() {
spawnPos = transform.position;
spawnRot = transform.rotation;
}
function Update(){
gameObject.hingeJoint.motor.force = 0.2;
if(Input.GetKey("q")){
gameObject.hingeJoint.motor.targetVelocity += myval;
}
if(Input.GetKey("d")){
gameObject.hingeJoint.motor.targetVelocity -= myval;
}
if(Input.GetKey("z")){
transform.position = spawnPos;
transform.rotation = spawnRot;
gameObject.hingeJoint.motor.targetVelocity = 0;
}
if(gameObject.hingeJoint.motor.targetVelocity > Vmax){
gameObject.hingeJoint.motor.targetVelocity = Vmax;
}
if(gameObject.hingeJoint.motor.targetVelocity < -Vmax){
gameObject.hingeJoint.motor.targetVelocity = -Vmax;
}
}