- Home /
why i can't use HitTest function in touch and mouse clicks at the same time?
can anyone tell me why i get this error when writing this code ?
Debug.Log(pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.touches[0].position)+pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.mousePosition) );
error : IndexOutOfRangeException: Array index is out of range. OnlineBall.Update () (at Assets/OnlineBall.cs:180)
if i delete
pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.touches[0].position)
or
pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.mousePosition)
i will not get any error. why i can't use both of them at the same time?
Answer by Landern · May 09, 2014 at 12:44 PM
If i remember correctly, Input.mousePosition will take into consideration first touch or touches[0]. It does not work the other way around, meaning Input.touches[0] does not represent the mouse position.
Now with regards to Input.touches[0], you will get index out of range exceptions if you are trying to access an item(Touch object) in the array of touches, but what if there wasn't a touch since the last frame rendered? BOOM, exception, check the length of the array to see if it's empty or null.
Your answer
Follow this Question
Related Questions
Differentiating inputs from mouse clicks and touches 1 Answer
Application in windowed mode - Why does finger-touch work with Unity4x and no longer with Unity5x? 0 Answers
make object disappear after being thrown when mouse clicked anywhere ? 1 Answer
How can I convert a OnMouseDown() command to a GetTouch input properly? 0 Answers
"Working with moving and mouse touch to set coordinates" 0 Answers