- Home /
GUITexture touch switch between two cameras
Hi, I have a main camera with GUITexture buttons controlled by touch on iOS, my problem is when I press the fire button when using the Bazooka I've scripted it so I initiate a camera to follow the RPG so the view is of the RPG going to its target and after the impact and explosion it returns back to the main camera
The problem is when it returns back to the main camera the touch is still registered because the finger was still on the fire button while the camera switched, so as soon as I touch anywhere on the screen when back to the main camera another RPG is fired until I touch the fire button again to release the touch.
So my question is whats the best way to release the touch from another camera, can more than one camera share the touch index or pass it over ?
Thanks.
Answer by PAEvenson · Nov 20, 2012 at 06:45 PM
I like to create a coroutine and wait for the finger to be released. Hope this helps!
void Update ()
{
if(isTouching == true)
return;
for(int i = 0; i < Input.touchCount; i++)
{
Vector3 pos = Input.touches[i].position;
if(guiTextureButton.HitTest(pos, uiCamera) == true)
{
StartCoroutine(tapCoRoutine(Input.touches[i].fingerId));
}
}
}
IEnumerator tapCoRoutine(int id)
{
isTouching = true;
bool isDown = true;
while(isDown == true)
{
yield return null;
isDown = false;
for(int i = 0; i < Input.touchCount; i++)
{
if(Input.touches[i].fingerId == id)
{
isDown = true;
break;
}
}
}
//TODO: handle press
m_ShowGUI = true;
}
Thank you, I converted it to .js and it works great, it just feels a bit strange that the weapon doesn't fire until you release the fire button.
$$anonymous$$ove your code to before the while loop then :P
Your answer
Follow this Question
Related Questions
Touch not working if camera is moved 0 Answers
perspective camera into android 0 Answers
Multiplying GUIs 0 Answers
GUI texture touch input problem 1 Answer
GuiTexture and Split Screen 1 Answer