Problemas al voltear un sprite

totespare

Os cuento, estoy intentando voltear un simple objeto 2D, y la forma fácil que se de hacerlo es multiplicando la escala del eje Y por -1. El problemilla es que para el futuro me genera ciertos quebraderos de cabeza, así que he preferido tirar por voltear el eje Y 180º. Para ello he probado a utilizar varias cosas:

transform.Rotate(0, 180, 0, Space.Self);
transform.RotateAround(transform.position, transform.up, 180f);
transform.Rotate(0f, 180f, 0f);
transform.eulerAngles = new Vector3(transform.eulerAngles.x, 180f, transform.eulerAngles.z);

Aparentemente me rotan el personaje, pero de vez en cuando la Y se queda en valores intermedios, y no rota completamente, haciendo parecer que el personaje ha cambiado de tamaño a lo ancho.

Alguna pista de qué podría ser? El script que tengo es muy básico de momento:

Gracias como siempre ^^

marod

#1

Prueba a rotar el sprite en local y no en global. Mira a ver si te sirve alguno de estos enlaces

http://stackoverflow.com/questions/26568542/flipping-a-2d-sprite-animation-in-unity-2d

http://answers.unity3d.com/questions/952558/how-to-flip-sprite-horizontally-in-unity-2d.html

1 respuesta
totespare

#2 acabo de fijarme, tenía el interpolate del objeto activado, ha sido quitarlo y magia... ;( ;( ;(

El segundo link que me has pasado me funciona perfectamente también. Muchas gracias ^.

1

Usuarios habituales

  • totespare
  • marod

Tags