Hello everyone!
I’ve run into some annoying OnMouseDown() function behaviour on iOS devices in Unity 4 (I assume it works the same on Android devices).
There’s a basic scene with few cubes on it. Each cube has this script attached to it:
using UnityEngine;
using System.Collections;
public class SimpleClickScript : MonoBehaviour {
void OnMouseDown() {
Destroy(gameObject);
}
}
When I run this scene on actual device, the OnMouseDown function works! Even though in official Unity documentation it states that:
(Unity - Scripting API: MonoBehaviour.OnMouseDown())
But the problem is that when you click on few objects with two or more fingers at once wrong game objects are being destroyed. Here’s a video of what happens:
Also tried to run this scene with this code on each cube instead:
using UnityEngine;
using System.Collections;
public class RaycastClickScript : MonoBehaviour {
void Update () {
if (Input.GetMouseButtonDown(0)) {
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
hit.transform.gameObject.SendMessage("ClickHandler");
}
}
}
public void ClickHandler() {
Destroy(gameObject);
}
}
Result is the same. Any idea why this might be happening?
You can download source project ZIP here: http://d.pr/f/NWEA
Thanks in advance,
Kostya