Rotate on Touch Input
HI All,
I have my Player Controller script set up but now trying to add in rotation to the player when the left or right button is pressed.
At the moment the player rotates to the right when it is moving right but cannot get it to rotate left if moving left, any ideas?
using UnityEngine; using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed = 5, jumpVelocity = 5;
public LayerMask playerMask;
public bool canMoveInAir = true;
Transform myTrans, tagGround;
Rigidbody2D myBody;
bool isGrounded = false;
float hInput = 0;
void Start ()
{
myBody = this.rigidbody2D;
myTrans = this.transform;
tagGround = GameObject.Find (this.name + "/tag_ground").transform;
}
void Update ()
{
isGrounded = Physics2D.Linecast (myTrans.position, tagGround.position, playerMask);
#if !UNITY_ANDROID && !UNITY_IPHONE && !UNITY_BLACKBERRY && !UNITY_WINRT || UNITY_EDITOR
Move(Input.GetAxisRaw("Horizontal"));
if(Input.GetButtonDown("Jump"))
Jump();
#else
Move (hInput);
#endif
}
void Move(float horizonalInput)
{
if(!canMoveInAir && !isGrounded)
return;
Vector2 moveVel = myBody.velocity;
moveVel.x = horizonalInput * speed;
myBody.velocity = moveVel;
if(moveVel.x >= speed)
transform.Rotate(0, 0, 100* -Time.deltaTime);
else
if(moveVel.y >= speed)
transform.Rotate(0, 0, 100* -Time.deltaTime);
Answer by Soos621 · Jul 02, 2016 at 11:31 PM
You never set movevel.y to anything you set the movevel.x to the horizontal Input but not the y
Your answer
Follow this Question
Related Questions
Mobile touching screen is pressing mouse 0 0 Answers
How do I override my touch.phase? 1 Answer
Moving Unity DualTouchControls/Joystick on touch but also functioning on initial touch. 0 Answers
Touch position returns weird behaviours 1 Answer
Is there a way to ensure a cursor position must hover over an object to work in OnMouseDrag? 1 Answer