- Home /
Platformer move script
I am using the UI System and my character moves as I want when I use a joystick or keyboard. but in the UI system is not working as I want because, I want to move to the opposite direction when I press the opposite key for example, the player is moving to the right but if I want to move to the Left, I need to stop touching the right arrow in the screen and then go to the left, so the problem is that I want to change to the opposite direction when ever I press the left or right UI button but without raising my finger from the screen.
This is the move script im using
using UnityEngine; using System.Collections;
public class PlayerController : MonoBehaviour { public float speed = 10, jumpVelocity = 10, bulletSpeed = 10; public LayerMask playerMask; public bool canMoveInAir = true; Transform myTrans, tagGround; Rigidbody2D myBody; bool isGrounded = false; float hInput; AnimatorController myAnim; public GameObject bullet;
 void Start ()
 {
     myBody = this.GetComponent<Rigidbody2D>();
     myTrans = this.transform;
     tagGround = GameObject.Find (this.name + "/tag_ground").transform;
     
 }
 void FixedUpdate ()
 {
     myAnim = AnimatorController.instance;
     myAnim.UpdateIsGrounded (isGrounded);
     isGrounded = Physics2D.Linecast (myTrans.position, tagGround.position, playerMask);
             
     #if !UNITY_ANDROID && !UNITY_IPHONE && !UNITY_BLACKBERRY && !UNITY_WINRT || UNITY_EDITOR
     hInput = Input.GetAxisRaw("Horizontal");
     myAnim.UpdateSpeed(hInput);
     if(Input.GetButtonDown("Jump"))
         Jump();
     #endif
     
     Move(hInput);
 }
 
 void Move(float horizonalInput)
 {
     if(!canMoveInAir && !isGrounded)
         return;
     
     Vector2 moveVel = myBody.velocity;
     moveVel.x = horizonalInput * speed;
     myBody.velocity = moveVel;
 }
 
 public void Jump()
 {
     if(isGrounded)
         myBody.velocity += jumpVelocity * Vector2.up;
 }
 
 public void StartMoving(float horizonalInput)
 {
     myAnim.UpdateSpeed(horizonalInput);
     hInput = horizonalInput;
 }
 
 public void Shoot()
 {
     if(Input.GetKeyDown("Fire1"))
     {
         GameObject beam = Instantiate(bullet,transform.position,Quaternion.identity) as GameObject;
         beam.GetComponent<Rigidbody2D>().velocity = new Vector3(bulletSpeed,0,0);
     }
 }
}
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                