Jump to content
cseliteZX

Rotar un objeto hacia un grado especifico

Recommended Posts

El problema que realmente tengo es que necesito, por decirlo asi, que mi objeto si por ejemplo estuviera a 75 grados regrese a 0 grados de manera no brusca ¿Tienen alguna idea para esto?

 

Share this post


Link to post
Share on other sites

vector3.Lerp lo usarias para eulerAngles, pero te va a dar problemas...

porejemplo si el objeto esta en -10 grados (350 grados) va a dar toda la vuelta por el otro lado, recorriendo 350 grados en vez de ir por el lado corto rexorriendo 10 grados.

tambien te dara problemas si el angulo Z es diferente de 0....

mejor usa Quaternion.Lerp.

Quaternion rotActual = transform.rotation;
transform.eulerAngles = new Vector3(0,0,0);//rotacion deseada
transform.rotation = Quaternion.Lerp(rotActual, transform.rotation, 0.1f);
//0.1f seria la "velocidad" a la que va hacia la rotacion deseada

 

  • Thanks 1

Share this post


Link to post
Share on other sites
30 minutes ago, iRobb said:

Y multiplica la velocidad por Time.deltaTime

si, asi mejor

Share this post


Link to post
Share on other sites
2 hours ago, Igor said:

vector3.Lerp lo usarias para eulerAngles, pero te va a dar problemas...

porejemplo si el objeto esta en -10 grados (350 grados) va a dar toda la vuelta por el otro lado, recorriendo 350 grados en vez de ir por el lado corto rexorriendo 10 grados.

tambien te dara problemas si el angulo Z es diferente de 0....

mejor usa Quaternion.Lerp.


Quaternion rotActual = transform.rotation;
transform.eulerAngles = new Vector3(0,0,0);//rotacion deseada
transform.rotation = Quaternion.Lerp(rotActual, transform.rotation, 0.1f);
//0.1f seria la "velocidad" a la que va hacia la rotacion deseada

 

Gracias, me sirve la explicación, me hacia falta eso 😃

 

2 hours ago, iRobb said:

Y multiplica la velocidad por Time.deltaTime

Yo la verdad es que uso void FixedUpdate() pues funciona de manera muy similar, solo que se aplica a todos los valores.

Share this post


Link to post
Share on other sites
5 minutes ago, cseliteZX said:

Gracias, me sirve la explicación, me hacia falta eso 😃

 

Yo la verdad es que uso void FixedUpdate() pues funciona de manera muy similar, solo que se aplica a todos los valores.

Fixed Update se utiliza para lo relacionado con Physics (rigidbody). No para transforms.

https://docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html

Share this post


Link to post
Share on other sites

×
×
  • Create New...