- Home /
Unity 2D: How can i get my sprite to rotate to the direction I am going?
I have seen many other questions on this but none seem to work. I was using transform.Translate but that meant when I rotated forwards became a different place and so it would just stop.
My code:
 using UnityEngine;
 using System.Collections;
 
 public class Movement2 : MonoBehaviour {
     //Inspector Variables
     float playerSpeed = 0.05f; //speed player moves
     
     void  Update (){
         
         UpAndDown();
         RightAndLeft();
         
     }
     
     void  UpAndDown (){
         
         if(Input.GetKey("up"))
         {
             //transform.Translate(0,playerSpeed,0); this is the old system
             transform.position = new Vector3(transform.position.x, transform.position.y + playerSpeed);
         }
         if(Input.GetKey("down"))
         {
             
             transform.position = new Vector3(transform.position.x, transform.position.y - playerSpeed);
         }
         
     }
     
     void  RightAndLeft (){
         if(Input.GetKey("right"))
         {
             transform.position = new Vector3(transform.position.x + playerSpeed, transform.position.y);
         }
         
         
         if(Input.GetKey("left"))
         {
             transform.position = new Vector3(transform.position.x - playerSpeed, transform.position.y);
         }
         
     }
     
     
 }
               Comment
              
 
               
              Answer by SergioSandiaz · Oct 03, 2016 at 06:01 AM
With Translate your moving, not rotating, try this
 float X = Input.GetAxis("Horizontal");
 float Y = Input.GetAxis("Vertical");
 
 transform.Rotate(transform.right * X * RotateSpeed);
 transform.Rotate(transform.up * Y * RotateSpeed);
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                