- Home /
iPhone button efficient ?
Is this an inefficient way to make a pause button for the iPhone:
var pauseButton: GameObject;
var hit : RaycastHit;
var pauseGame : boolean = false;
function Update () {
for (var touch : iPhoneTouch in iPhoneInput.touches) { var ray = Camera.main.ScreenPointToRay(touch.position); var hit : RaycastHit;
 
                if (touch.phase == iPhoneTouchPhase.Began)
 {    
     if (Physics.Raycast(ray,hit))
     {
         if (hit.collider.gameObject != null)
         {
             if(hit.collider.gameObject == pauseButton)
             {    
                 if(pauseGame == false)
                 {
                 // call pause game function           
                     pauseGame = true;
                 }
                 else
                 {
                     //un pause game
                     pauseGame = false;
                 }
             }
         }
     }
 }
 } 
}
I'm a little worried as its in update() and is constantly checking?
Thanks
Answer by Eric5h5 · Nov 01, 2010 at 09:38 PM
Instead of raycasting, check that a rect contains the touch position.
for (var touch : iPhoneTouch in iPhoneInput.touches)
{
    if (touch.phase == iPhoneTouchPhase.Began && pauseButtonRect.Contains(touch.position))
    {
Unless the pause button is actually an object that moves around, there's no reason to use raycasting and colliders.
Thanks, that makes the code a lot shorter :) , so would it still be ok to use this for an iPhone app as its constantly checking in the update function in there has been a press?
You have to check touches every frame since they can occur at any time, and there are no OnTouchBegan callbacks or anything.
Your answer
 
 
             Follow this Question
Related Questions
Flipping textures 0 Answers
Unity iPhone and Unity Desktop Scripting Differences 2 Answers
How to 'flick' objects in a 2d game 1 Answer
ExecutionEngineException: Unity 3 on the iPhone 2 Answers
Iphone Unity and Best book . 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                