这个想来只要知道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 =