这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

36 行
978 B

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
[System.Serializable]
public class BoolEvent : UnityEvent<bool, GameObject>
{
}
/// <summary>
/// A generic class for a "zone", that is a trigger collider that can detect if an object of a certain type (layer) entered or exited it.
/// Implements <code>OnTriggerEnter</code> and <code>OnTriggerExit</code> so it needs to be on the same object that holds the Collider.
/// </summary>
public class ZoneTriggerController : MonoBehaviour
{
[SerializeField] private BoolEvent _enterZone = default;
[SerializeField] private LayerMask _layers = default;
private void OnTriggerEnter(Collider other)
{
if ((1 << other.gameObject.layer & _layers) != 0)
{
_enterZone.Invoke(true, other.gameObject);
}
}
private void OnTriggerExit(Collider other)
{
if ((1 << other.gameObject.layer & _layers) != 0)
{
_enterZone.Invoke(false, other.gameObject);
}
}
}