【Unity小技巧】精灵 SpriteRender 点击事件

前言

Unity 的 UI 可以直接添加 Button 来触发点击事件。
而精灵并不是 UI,无法用 Button 的方式添加事件。

让精灵也可以被点击,可以参考本文的方法。

射线检测

UI 之所以能够被检测到点击事件,是因为在 Canvas 上面有一个 Graphic Raycaster 组件在进行射线检测,然后发送给 EventSystem 处理。

但是 SpriteRender 无法用 Canvas 的射线进行检测,我们可以在 Camera(摄像机)上面添加射线检测组件 Physics 2D Raycaster

Physics 2D Raycaster

点击事件

接着给需要点击的精灵添加 Collider(碰撞体):

添加碰撞体组件

接着再添加 EventTrigger(事件触发器)组件:

EventTrigger

EventTrigger 里可以设置不同的鼠标事件:

  • Pointer Enter:鼠标滑入
  • Pointer Exit:鼠标离开
  • Pointer Down:鼠标按下
  • Pointer Up:鼠标弹起

编写脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MapBase : MonoBehaviour
{
public string mapName;

public void OnPointEnter()
{
Debug.Log("进入");
}

public void OnPointExit()
{
Debug.Log("离开");
}

public void OnPointDown()
{
Debug.Log("按下");
}
}

分别绑定对应的事件即可。

文章作者: 火烧兔子
文章链接: http://huotuyouxi.com/2022/01/07/unity-tips-027/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 火兔游戏工作室