- Home /
Question by
utkarshDubey · Dec 12, 2016 at 08:09 AM ·
androidunity 5touch controls
Android touch input Null Reference exception error
I am trying to make a car racing game . In this game I have made two Buttons and attached scripts carController
to its EventTrigger
on pointer down as follows :
the car controller script is in c# and is as follows:
public class carController : MonoBehaviour {
public float carSpeed;
Vector3 position;
public uiManager ui;
public audioManager am;
Rigidbody2D rb;
bool currentPlatformAndroid=false;
// Use this for initialization
void awake(){
rb = GetComponent<Rigidbody2D> ();
#if UNITY_ANDROID
currentPlatformAndroid=true;
#else
currentPlatformAndroid=false;
#endif
am.carSound.Play ();
}
void Start () {
//ui = GetComponent<uiManager> (); no need
if (currentPlatformAndroid == true) {
Debug.Log ("Android");
} else {
Debug.Log ("windows");
}
position = transform.position;
}
// Update is called once per frame
void Update () {
if (currentPlatformAndroid == true) {
//android specific
TouchMove();
} else {
position.x+=Input.GetAxis ("Horizontal") * carSpeed * Time.deltaTime;
position.x= Mathf.Clamp (position.x, -2.1f, 2.1f);
transform.position = position;
}
position = transform.position;
position.x= Mathf.Clamp (position.x, -2.1f, 2.1f);
transform.position = position;
}
void OnCollisionEnter2D(Collision2D col){
if (col.gameObject.tag == "Enemy Car") {
gameObject.SetActive (false);
ui.gameOverF ();
am.carSound.Stop ();
}
}
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;
}
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();
}
}
}
Now I have tried both button touch and swipe touch but both are not working !!
Am I am not able to figure out why ?
Can anybody help ?
untitled-1.jpg
(257.6 kB)
Comment
Your answer
Follow this Question
Related Questions
Rigidbody doesn't move with touch along x and z axis 0 Answers
EventSystem.current.IsPointerOverGameObject(t.fingerId) - Not working on Android builds - Unity 2 Answers
My Unity android game cant run on my android 1 Answer
Normal map is not working with Unity 5 when Low-level Native Plugin Interface is used 0 Answers