Page 1 sur 1

erreurs de retour des composantes de rotation

Publié : 08 Mai 2019 22:21
par Kaloverian
bonjour,

Après déclaré initialement pi

Code : Tout sélectionner

float pi=Mathf.PI;
et avoir écrit dans Update() cette ligne

Code : Tout sélectionner

 
print("composantes de rotation:"+objet.GetComponent<Transform>().rotation.x*180/pi+","+objet.GetComponent<Transform>().rotation.y*180/pi+","+objet.GetComponent<Transform>().rotation.z*180/pi);
 
les composantes de rotation de l'objet ne correspondent pas tout à fait
Pourquoi?
A essayer pour voir l'erreur

merci de votre aide

Re: erreurs de retour des composantes de rotation

Publié : 09 Mai 2019 07:54
par Max
Bonjour,

les éléments x-y-z de la propriété rotation ne sont pas directement le reflet des angles de rotation de ton objet. Transform.rotation est un Quaternion. Passe par rotation.eulerAngles dans ce cas.

Une fois de plus, compulse la doc, tu aurais rapidement vu qu'il y avait un soucis avec ton approche.

Re: erreurs de retour des composantes de rotation

Publié : 23 Mai 2019 02:16
par Kaloverian
j'ai écrit ce petit code créant dynamiquement un objet qui doit prendre les composantes de rotation de l'objet précédent.
Je décide dans l'inpector que les composantes de rotation de l'objet initial sont par exemple:
a,b,c
mais les objets suivants ne les prennent pas!!
Pourquoi?Qu'est-ce que j'ai loupé?

Code : Tout sélectionner

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class getcomponent_rotation : MonoBehaviour
{
	List<GameObject> list_objet=new List<GameObject>();
	List<Transform> allCreations = new List<Transform>();
	public GameObject objet;
	int i=0;

	// Use this for initialization
	void Start ()
	{
	
	}
	
	// Update is called once per frame
	void Update ()
	{

		if (Input.GetKeyDown (KeyCode.T)) {
			i++;



			objet = new GameObject ("objet" + i);
			list_objet.Add (objet);
			allCreations.Add (objet.transform);

			objet.transform.rotation = list_objet[i-1].GetComponent<Transform> ().rotation;
	
	}
}
}


merci

Re: erreurs de retour des composantes de rotation

Publié : 23 Mai 2019 13:04
par Max
Hello,

c'est une question d'algo simple.
Quand tu appuis sur T, i passe alors à 1, tu ajoutes ton objet créé à list_objet (qui contient donc un premier élément),
donc forcément quand tu fais

Code : Tout sélectionner

objet.transform.rotation = list_objet[i-1].GetComponent<Transform> ().rotation;
revient à

Code : Tout sélectionner

objet.transform.rotation = list_objet[0].GetComponent<Transform> ().rotation;
ce qui équivaut à dire que la rotation de l'objet est égale à ... elle même...