- Home /
sprite rotation
hi,
i have a sprite which i'd like to rate 180 when moving left/right.
my problem is that when i use transform.rotate everything is inverted ; the sprite and the left/right direction so when i pressed left arrow key, my sprite goes to the right and vice versa.
what's the right way to do the correct rotation ?
thanks
What's so difficult about rotating an object? Does it invert your controls?
$$anonymous$$eep in $$anonymous$$d that a sprite alone does nothing. There's no reason why you need to keep your controls slaved to the direction that it is currently pointing- try using an empty transform, and just pivot the sprite on top of that.
Answer by Mike99 · May 07, 2012 at 07:06 PM
I'm not sure i understand what you mean but I've got an empty object with a sprite (using sprite manager).
Here's the code I use maybe there's something wrong in there ?
void Update ()
{
transform.Translate (Input.GetAxis ("Horizontal") * Time.deltaTime * speed, 0, 0);
if (Input.GetAxis ("Horizontal") > 0) { // if going right direction
if (walkingRight != true) { // if was going left the frame before => rotate sprite
Debug.Log ("rotate to the right");
walkingRight = true;
transform.Rotate (Vector3.up * 180);
}
sprite.DoAnim ("walk");
Debug.Log ("going right");
} else if (Input.GetAxis ("Horizontal") < 0) { // if going left direction
if (walkingRight == true) { // if was going right the frame before => rotate sprite
Debug.Log ("rotate to the left");
walkingRight = false;
transform.Rotate (Vector3.up * 180);
}
sprite.DoAnim ("idle");
Debug.Log ("going left");
} else { // play idle anime
sprite.DoAnim ("idle");
}
}
Your answer
Follow this Question
Related Questions
2D sprites with 3D camera - Change sprite upon rotation - Strange "jitter" 0 Answers
Rotating sprite through touch (storing current rotation) 0 Answers
2D sprite rotation with velocity and interpolation 1 Answer
Spawning a plane in front of an FPS player? 0 Answers
Change Sprite Origin in 2D 1 Answer