前言
Unity 的 UI 可以直接添加 Button 来触发点击事件。
而精灵并不是 UI,无法用 Button 的方式添加事件。
让精灵也可以被点击,可以参考本文的方法。
射线检测
UI 之所以能够被检测到点击事件,是因为在 Canvas 上面有一个 Graphic Raycaster 组件在进行射线检测,然后发送给 EventSystem 处理。
但是 SpriteRender 无法用 Canvas 的射线进行检测,我们可以在 Camera(摄像机)上面添加射线检测组件 Physics 2D Raycaster
点击事件
接着给需要点击的精灵添加 Collider(碰撞体):
接着再添加 EventTrigger(事件触发器)组件:
EventTrigger 里可以设置不同的鼠标事件:
- Pointer Enter:鼠标滑入
- Pointer Exit:鼠标离开
- Pointer Down:鼠标按下
- Pointer Up:鼠标弹起
编写脚本:
1 | using System.Collections; |
分别绑定对应的事件即可。