Unity 的用UnityEvent来自定义触发方式

本文介绍了如何利用UnityEvent自定义触发事件的方式,重点强调了两点:一是通过添加Layer层检测作为触发开关,只有匹配特定Layer的物体才会触发;二是提到了一个辅助方法IsInMask(GameObject go),该方法用于判断GameObject的Layer是否在预设的LayerMask内,这是一个对LayerMask类的扩展方法实现。
摘要由CSDN通过智能技术生成

这个想来只要知道UnityEvent是个什么就很简单,可以按照自己的需要添加触发事件的类型,在需要的时间点触发,需要注意两点:

1.我添加了一个Layer层的检测,主要是用来在场景中多一层是否触发的开关,只有在LayerMask内的Layer才会触发

2.代码中有调用一个IsInMask(GameObject go)这样的方法,这个是用来判断Layer是否在LayerMask内的方法,是我自己对LayerMask这个类写的一个扩展方法,方便直接调用的,扩展方法的写法:Unity扩展方法

    public enum EventMode//自定义事件类型
    {
        MouseEnter,
        MouseExit,
        MouseUp,
        MouseDown,
        MouseDrag,
        TriggerEnter,
        TriggerExit,
        TriggerStay,
        UIHover,
        UIClick,
        UIPress,
        UIDrag,

        No
    }

public class TriggerEvents : MonoBehaviour {
    public bool openLayerDetect = false;//Layer层检测触发
    public LayerMask triggerLayer;

    public EventMode[] eventModes;
    public UnityEvent[] unityEvents;


    private void OnMouseEnter()
    {
        for(int i =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值