Mais voui :wink:Envoyé par xander
Du coup, je vous est fait un mini tuto pour expliquer bien comment cela marche :wink:
http://forum.steph3d.net/index.php/topic,408.0.html
Merchi :love:
Voilà le lien qui m'a servit pour l'échelle et pour le fpv
http://forum.unity3d.com/viewtopic.php?p=215478
Voili :wink:
Merci à vous 2 pour ces infos sur Unity ! :prie: :poucehaut:
http://dr-graphix.blogspot.com/-DRG Design / Portfolio
steph3D, merci pour ton tuto.
Je cherche à animer l'ouverture / fermeture d'une porte en cliquant sur l'objet interrupteur.
Pour l'instant, la porte tourne mais ne s'arrete de tourner que lorsque je reclique sur l'interrupteur (du à la fonction update).
Est-ce que je peux lui dire de ne tourner que de X degrés lors du premier clic et lui dire de revenir à sa position initiale lors du second clic ?
J'ai réussi une bidouille en créant une variable à laquelle j'attribue une valeur et qui déclanche une animation faite dans c4d.
Mais j'aimerais me passer de l'anim à créer dans c4d...
Ah bah tiens, moi je passe par l'anim justement.
Si il y a une autre soluce, je suis preneur
Yes,
tiens, vl'à la modif :
Pour l'instant c'est ouvert ou fermé. Je regarde pour la méthode d'interpolation de position...Code:var _cible : GameObject; private var _interrupteur: boolean; function Start () { _interrupteur= false; } function OnMouseDown() { if(_interrupteur){ _cible.transform.Rotate(0,90,0); _interrupteur = false; } else { _cible.transform.Rotate(0,-90,0); _interrupteur = true; } }
Je pense qu'il y a une piste pour l'interpolation avec la fonction SLERP.
Mais c'est pas gagné...
Merci .... et bon courage :wink:
Salut à tous,
Si ça peut encore servir, voici ma bidouille pour animer une porte. Ca vaut ce que ça vaut et c'est largement pompé du forum Unity3D avec divers bouts de code glânés deci delà... Il y a parfois des "ratés" que je ne m'explique pas encore mais dans l'ensemble ça fonctionne. Il y a deux variables publiques qui permettent d'adapter dans l'inspecteur l'angle de rotation et la durée de rotation, pour personnaliser par porte. Il suffit de déposer le script sur un objet à faire tourner. Bien entendu, il faut que le pivot de rotation soit au bon endroit... J'espère que ça vous sera utile. :wink:
EDIT : euh, il y a des erreurs d'affichage du code dirait-on. Je peux déposer un zip si vous voulez ?Code:private var isOpen = 0 ; private var qTo; private var qToback; public var dureeRotation: float = 3.0; public var toAngle: float = 90; function Start() { qTo = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y + toAngle, transform.rotation.eulerAngles.z); qToback = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z); } function OnMouseDown() { var tempsFin = Time.time + dureeRotation; var qFrom = transform.rotation; if (isOpen == 0) { while (Time.time < tempsFin) { transform.rotation = Quaternion.Lerp (qTo, qFrom, (tempsFin - Time.time) / dureeRotation); yield; } isOpen = 1 ; } else if (isOpen == 1) { while (Time.time < tempsFin) { transform.rotation = Quaternion.Lerp (qToback, qFrom, (tempsFin - Time.time) / dureeRotation); yield; } isOpen = 0 ; } }
"One cross each." (Monty Python, The life of Brian)
C4D 21 - Octane C4D plug - 3 x GTX980, 2 x RTX2070 - Intel i7 6850
Merci, je regarde ça se soir :wink:
atome451, et comment que çà peut servir!
Si tu as un zip, je veux bien.
Merci
Salut à vous,
Je ne suis plus sur la machine de développement mais ce fichier devrait fonctionner.
S'il y a des soucis avec le codage texte, un copier-coller entre un éditeur texte genre notepad ou textedit et l'éditeur de script de Unity3D devrait faire l'affaire. Au pire, j'en copie un nouveau lorsque je serai de retour sur la machine de développement. Dites-moi quoi. :wink:
"One cross each." (Monty Python, The life of Brian)
C4D 21 - Octane C4D plug - 3 x GTX980, 2 x RTX2070 - Intel i7 6850
Merci, je regarde çà ce soir !
J'ai essayé et ça fonctionne impec :prie:
J'avais commencé à essayé de pondre un script mais sans réussite.
Merci :bounce:
Super,
juste une version modifiée pour lancer la rotation en cliquant sur un autre objet (var _cible) :
Code:private var isOpen = 0 ; private var qTo; private var qToback; public var dureeRotation: float = 3.0; public var toAngle: float = 90; public var _cible : GameObject; function Start() { qTo = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y + toAngle, transform.rotation.eulerAngles.z); qToback = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z); } function OnMouseDown() { var tempsFin = Time.time + dureeRotation; var qFrom = _cible.transform.rotation; if (isOpen == 0) { while (Time.time < tempsFin) { _cible.transform.rotation = Quaternion.Lerp (qTo, qFrom, (tempsFin - Time.time) / dureeRotation); yield; } isOpen = 1 ; } else if (isOpen == 1) { while (Time.time < tempsFin) { _cible.transform.rotation = Quaternion.Lerp (qToback, qFrom, (tempsFin - Time.time) / dureeRotation); yield; } isOpen = 0 ; } }
Ah bin je suis content de partager. Et si ça peut servir, je suis encore plus content. :wink:
"One cross each." (Monty Python, The life of Brian)
C4D 21 - Octane C4D plug - 3 x GTX980, 2 x RTX2070 - Intel i7 6850