I have this script: Code (csharp): using UnityEngine; using System.Collections; namespace Runner { public class TouchScreenSide : MonoBehaviour { public Rect LinksRect; public Rect RechtsRect; public bool linksb = false; public bool rechtsb = false; public Texture2D linkst; public Texture2D rechtst; [HideInInspector] public bool pressed = false; [HideInInspector] public bool pressedleft = false; [HideInInspector] public bool pressedright = false; // Use this for initialization void Start() { } // Update is called once per frame void Update() { //Links LinksRect = new Rect(0, 0, Screen.width / 2, Screen.height); //Rechts RechtsRect = new Rect(Screen.width / 2, 0, Screen.width / 2, Screen.height); if (linksb && rechtsb) { linksb = false; rechtsb = false; Debug.Log("Entweder linksb ODER rechtsb!"); } GetTouchd(); } void OnGUI() { if (linksb) { GUI.DrawTexture(LinksRect, linkst); } if (rechtsb) { GUI.DrawTexture(RechtsRect, rechtst); } } void GetTouchd() { if (linksb) { bool touch1 = false; for (int i1 = 0; i1 < Input.touchCount; i1++) { if (LinksRect.Contains(Input.touches[i1].position)) { pressed = true; pressedleft = true; touch1 = true; } } if (Input.GetMouseButton(0) && LinksRect.Contains(Input.mousePosition)) { pressed = true; pressedleft = true; } else if (!touch1) pressed = false; else if (!touch1) pressedleft = false; } if (rechtsb) { bool touch = false; for (int i = 0; i < Input.touchCount; i++) { if (RechtsRect.Contains(Input.touches[i].position)) { pressed = true; pressedright = true; touch = true; } } if (Input.GetMouseButton(0) && RechtsRect.Contains(Input.mousePosition)) { pressed = true; pressedright = true; } else if (!touch) pressed = false; else if (!touch) pressedright = false; } } } } But when I press on the right side of the screen, the left and the right one are touched. Where is my error?