Camera qui tourne autour d'un objet

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
spygon
Messages : 4
Inscription : 15 Avr 2010 16:25

Camera qui tourne autour d'un objet

Message par spygon » 15 Avr 2010 16:56

Bonjour

J'essaye de créer un bouton qui permet de tourner autour d'un objet.
Normalement en restant appuye sur le bouton, ca continuera de tourner mais je n'ai pas encore implanter cette partie.

Mon problème c'est que j'arrive pas à obtenir le résultat que je veux.
Ma caméra tourne bien autour mais j'arrive pas à régler l'angle de déplacement ni à remettre la caméra à la même auteur.

Si vous connaissez la technique que ce soit sur le plan mathématique ou programmation, je suis preneur.

Voici mon code

Code : Tout sélectionner

var target : Transform;
var damping = 1.0;

var bouton;

var distance ;

var rotationDamping = 1.0;

function OnGUI () {

btnGauche = GUI.Button(Rect(20,80,100,40),"gauche");

	if(btnGauche){
	//var rotation = Quaternion.LookRotation(target.position - transform.position);	
	distance = Mathf.Sqrt( (target.position.x - transform.position.x) * (target.position.x - transform.position.x) +
									(target.position.y - transform.position.y) * (target.position.y - transform.position.y) +
									(target.position.z - transform.position.z) * (target.position.z - transform.position.z) );
									
	wantedRotationAngle = target.eulerAngles.y;
	currentRotationAngle = transform.eulerAngles.y;

	currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle,  rotationDamping *Time.deltaTime);

	currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
	GameObject.Find("Main Camera").transform.position = target.position ;
	GameObject.Find("Main Camera").transform.position -=  currentRotation * Vector3.right * distance ;
	
	transform.position.y =  0.5;
	
	transform.LookAt (target);
	
	}
}

chloridrik
Messages : 18
Inscription : 24 Mars 2010 19:05

Re: Camera qui tourne autour d'un objet

Message par chloridrik » 15 Avr 2010 21:23

Salut, si comme moi tu n'es pas bon en math, et encore moins en math 3D, je tenterais de faire un truc comme ça :

- créer un GameObject vide, et le positionner au centre de l'objet autour du quel tu veux tourner
- mettre dans cet objet la caméra et l'excentrer
et pour tourner autour, tu as juste à faire tourner ton gameObject

non ?

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Camera qui tourne autour d'un objet

Message par giyomuSan » 16 Avr 2010 03:14

pk n'utilise pas la fonction Rotate.Around

http://unity3d.com/support/documentatio ... round.html

spygon
Messages : 4
Inscription : 15 Avr 2010 16:25

Re: Camera qui tourne autour d'un objet

Message par spygon » 16 Avr 2010 17:04

nikel giyomuSan

c'est exactement ce qui me fallait j'ai du la zapper en regardant la doc

j'en étais au point de refaire les fonctions à la main comme en OpenGL

j'ai plus qu'a trouver comment choper la position du milieu de mon objet

spygon
Messages : 4
Inscription : 15 Avr 2010 16:25

Re: Camera qui tourne autour d'un objet

Message par spygon » 19 Avr 2010 15:54

Je fais un petit up car j'arrive pas du tout à récupérer le centre de mon objet sachant que c'est un objet max importer en FBX

le pivot est pas au centre de mon objet et du coup pour mon rotateAround c'est pas terrible avec le pivot

si vous savez comment récupérer le centre d'un objet je suis preneur

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Camera qui tourne autour d'un objet

Message par giyomuSan » 20 Avr 2010 02:47

http://unity3d.com/support/documentatio ... ?from=Mesh

normalement tu ne devrait pas avoir a manipuler ca , si ton mesh a etet exporter correctement avec son centre / pivot la ou il est cense etre (a moins que tu est volontairement deplace son pivot..)

regarde ds unity si lorsque que tu change entre >> center ou Pivot pour la manipulation du mesh la location du gizmo..normalement el center devrait toujours indiquer el centre du mesh (sauf si tu l as modifier ds ton app 3D, volontairement ou invonlontairement)

Faire gaffe aussi car pivot != center...selon les app , tu peu avoir un pivot et un center of mesh completement different et a l export unity va se fier au "center" plutot qu 'au pivot pour manipuler ton model

spygon
Messages : 4
Inscription : 15 Avr 2010 16:25

Re: Camera qui tourne autour d'un objet

Message par spygon » 20 Avr 2010 16:20

le probleme je pense vient que ca vient du fait que ce n'est pas un mesh mais un ensemble de mesh

pour le bouton center / pivot j'avais deja vu que mon center etait a la bonne place c'est pour ca que je me suis dis que je pouvais le recuperer sinon je me suis dis que je pouvais recuperer largeur, hauteur et longueur de mon objet mais non pareil je trouve pas pourtant je suis pas du genre a poster sur les forums mais là je galère et comme c'est pour un projet de master j'aime pas perdre 2-3 j pour rien :(

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Camera qui tourne autour d'un objet

Message par giyomuSan » 20 Avr 2010 17:09

hmm solution system D , plutot que de galerer , creer un empty game object que tu place (ca risque d etre a juger mais bon ) au centre de ton ensemble de mesh et utilise la fonction rotate around sur l empty object..a defaut d etre jolie comme solution , ca t evitera de perdre trop de temps la dessus dans un premier temps..

Répondre

Revenir vers « Scripting »