我有场景,摄像机,带有Grid组件的对象以及带有Tilemap + TilemapRenderer组件的子对象,然后在Grid对象上编写脚本。
我需要捕获这些对象上的鼠标事件(然后检测单元格,我知道该怎么做)。在更新生命周期中不是Input.GetMouseButton(0)
,我需要事件处理。
我该怎么做?
我已经尝试过在tilemaps / grid和MonoBeha:OnMouseDown方法上的对撞机,已经尝试过IPointerEnterHandler(和另一个表单包)中的方法,以及raycasts。什么都没有...
我真的很困惑,我应该从Input.GetMouseButton(0)
建立myown事件系统吗?
答案 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!");
}