Unity3D Grid Tilemap-如何捕获鼠标事件?

时间:2018-08-16 12:15:03

标签: unity3d events 2d

我有场景,摄像机,带有Grid组件的对象以及带有Tilemap + TilemapRenderer组件的子对象,然后在Grid对象上编写脚本。

我需要捕获这些对象上的鼠标事件(然后检测单元格,我知道该怎么做)。在更新生命周期中不是Input.GetMouseButton(0),我需要事件处理。 我该怎么做?

我已经尝试过在tilemaps / grid和MonoBeha:OnMouseDown方法上的对撞机,已经尝试过IPointerEnterHandler(和另一个表单包)中的方法,以及raycasts。什么都没有...

我真的很困惑,我应该从Input.GetMouseButton(0)建立myown事件系统吗?

1 个答案:

答案 0 :(得分:1)

  

OnMouseDown在用户按下鼠标按钮时被调用   通过GUIElement或Collider。

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html

因此,如果您想使用OnMouseDown,则可以将BoxCollider2D添加到网格或Tilemap中(您可能必须检查IsTrigger是否最终推开了其他对象)

我只是尝试在Grid和Tilemap上添加对撞机和小脚本,效果很好

public void OnMouseDown()
{ 
    Debug.Log("Boom!");
}