- Home /
i want to run 2d racing game with android control in android and pc control on windows but its not working
can you help me with the error why my game is not running on android with touch controls in android but running in pc with keyboard control fine. here below is code:----------------------------------------------------------------------------------------------------------------------------
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class carController : MonoBehaviour { public float carSpeed; public float maxPos = 1.95f; Vector3 position; public uiManager ui; public AudioManager am;
 bool currntPlatformAndroid = false;
 Rigidbody2D rb;
 
 void awake()
 {
     rb = GetComponent<Rigidbody2D> ();
     #if UNITY_ANDROID
          currntPlatformAndroid = true;
     #else
             currentPlatformAndroid = false;
     #endif
 }
 // Start is called before the first frame update
 void Start ()
 {
     am.carSound.Play ();
   
     position = transform.position;
     if(currntPlatformAndroid == true)
     {
         Debug.Log("Android");
     }
     else
     {
         Debug.Log("Windows");
     }
     
 }
 // Update is called once per frame
 void Update()
 {
     if (currntPlatformAndroid == true)
     {
         //android specific code
         TouchMove();
     }
     else
     {
         position.x += Input.GetAxis("Horizontal") * carSpeed * Time.deltaTime;
         position.x = Mathf.Clamp(position.x, -1.95f, 2.05f);
         transform.position = position;
     }
     position = transform.position;
     position.x = Mathf.Clamp(position.x, -1.95f, 2.05f);
     transform.position = position;
 }
 void OnCollisionEnter2D(Collision2D col)
 {
     if (col.gameObject.tag == "Enemy Car")
     {
         //Destroy(gameObject);
         gameObject.SetActive(false);
         ui.gameOverActivated();
         am.carSound.Stop();
     }
 }
 void TouchMove()
 {
     if(Input.touchCount > 0)
     {
         Touch touch = Input.GetTouch(0);
         float middle = Screen.width / 2;
         if(touch.position.x < middle || touch.phase == TouchPhase.Began)
         {
             MoveLeft();
         } else if (touch.position.x > middle || touch.phase == TouchPhase.Began)
         {
             MoveRight();
         }
     }
     else
     {
         SetVelocityZero();
     }
 }
     public void MoveLeft()
     {
     rb.velocity = new Vector2(-carSpeed, 0);
     }
     public void MoveRight()
     {
     rb.velocity = new Vector2(carSpeed, 0);
     }
     public void SetVelocityZero()
     {
         rb.velocity = Vector2.zero;
    
 }
}
Your answer
 
 
             Follow this Question
Related Questions
touch control doesn't work right after suspending and resuming game 0 Answers
KeyboardOrbit with DualTouchControls 1 Answer
Unity2D touch screen input 0 Answers
Mobile Input - Sensitivity, Gravity Matching InputManager's Key 0 Answers
Input.GetTouch never getting TouchPhase.Ended on Android 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                