我有一个包含BoxCollider2D的GameObjects数组。当我点击其中一个自我检测点击时,我不知道该怎么做。
我的意思是,给我一个索引。例如,我单击位置0上的对象,在控制台中我得到值0,在控制台中单击位置3中的对象。我得到了值3.
我试图创建一个对我有帮助的课程,但它没有用。
public GameObject[] ColorColliders;
void Start ()
{
foreach (GameObject coll in ColorColliders)
coll.GetOrAddComponent<MouseEventSystem>().MouseEvent += ColorClick;
}
private void ColorClick(GameObject target, MouseEventType type)
{
if(type == MouseEventType.CLICK)
{
int targetIndex = System.Array.IndexOf(ColorColliders, target);
Debug.Log(targetIndex);
}
}
如果您了解其他方法,可以帮助我吗? 感谢。
答案 0 :(得分:0)
MouseEventSystem
不是统一默认值。你依靠使用它吗?如果是这样,请忽略以下内容。
最简单的&#34;只使用统一东西的方式就是只使用MonoBehaviour.OnMouseDown
- 还有很多其他方法可以使用射线游戏。
您可能需要根据自己的需要调整以下内容,这只是一个简单的例子。只需将其放在相应的对象上,然后在检查器中指定索引即可。
using UnityEngine;
public class ColorSelector : MonoBehaviour {
public int index;
void OnMouseDown() {
Debug.Log(string.Format("Color with index {0} was clicked.", index));
}
}
另一种选择是使用Unity的内置EventSystem,请参阅手册和教程以获取更多信息。 https://docs.unity3d.com/Manual/EventSystem.html 如果您遇到麻烦,请随时询问。
希望我帮助过。