- Home /
OnMouseDown is checked when build for Android
I have an question.
For example I have two function, One that is getting the OnMouseDown event when Im in the editor and other one when Im getting touch inputs when Im getting the app to android.
 #if UNITY_EDITOR
     void OnMouseDown()
     {
         //if the state is in Motion then we can't click on other matches 
         if (GameObject.Find ("Board").GetComponent<Board> ().DetermineBoardState())
                         return ;
 
         //This will ensure us that if the objects are swapping than we can't swap other objects.
         if(!GameObject.Find ("Board").GetComponent<Board>().isSwapping)
         {
             GameObject.Find ("Board").GetComponent<Board> ().SwapGems (this);
 
             //This will not allow us to click on any other objects while is swapping
             ToggleSelector ();
         }
 
     }
 #endif
 
 #if UNITY_ANDROID
     void Upate()
     {
          TouchDown();
     }
 
     //  OnTouchDown.cs
     //  Allows "OnMouseDown()" events to work on the iPhone.
     //  Attach to the main camera.
     void TouchDown()
     {
         RaycastHit hit = new RaycastHit ();
         for(int i = 0; i < Input.touchCount; ++i)
         {
             if(Input.GetTouch(i).phase.Equals(TouchPhase.Began))
             {
 
                 //Construct a ray from the current touch coordinates
                 Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
                 if(Physics.Raycast(ray,out hit))
                 {
                     //if the state is in Motion then we can't click on other matches 
                     if (GameObject.Find ("Board").GetComponent<Board> ().DetermineBoardState())
                         return ;
                     
                     //This will ensure us that if the objects are swapping than we can't swap other objects.
                     if(!GameObject.Find ("Board").GetComponent<Board>().isSwapping)
                     {
                         GameObject.Find ("Board").GetComponent<Board> ().SwapGems (this);
                         
                         //This will not allow us to click on any other objects while is swapping
                         ToggleSelector ();
                     }
                 }
             }
         }    
     }
 
 #endif
As you can see I placed the macros that I want my function to be called for.
So, as I understood, When I will be in the Editor, my script will work with OnMouseDown.
But when I will be on Android, I will work with Update and TouchDown. Right ?
Reference from this link http://docs.unity3d.com/Manual/PlatformDependentCompilation.html
Than if that is true, why when Im building the Level for Android I'm getting this warning.?
Game scripts or other custom code contains OnMouse_ event handlers. Presence of such handlers might impact performance on handheld devices. UnityEditor.HostView:OnGUI()
Answer by uanmanarmy · Jul 22, 2014 at 09:13 AM
[Closed].
It was a bug of mine. Actually the OnMouseDown is working with phones. Only that you cannot take more than one touch at the same time.
Answer by niall1111 · Jul 18, 2014 at 01:30 PM
Do you have an OnMouseDown function anywhere else in a script in your assets folder? do a search using Mono or something, with ctrl+shift+f. Regardless, I've always found that warning message could be safely ignored anyway. Also of note, I've been perfectly fine using OnMouseDown handlers for iOS without any noticeable drop in performance. I get the same warning on my builds.
yes As you can see I have the On$$anonymous$$ouseDown function in my script, but it's under UNITY_EDITOR macro (
Your answer
 
 
             Follow this Question
Related Questions
Convert Touch input to Mouse input C#? 1 Answer
Get GameObject That Was Last Clicked? 2 Answers
Projection to mouse position in isometric game 1 Answer
GetMouseButtonDown(1) true in multiple frames 1 Answer
Gravity Switch Touch 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                