25 lines
823 B
C#
25 lines
823 B
C#
using UnityEngine;
|
||
using BaseGames.Core.Events;
|
||
|
||
namespace BaseGames.Audio
|
||
{
|
||
/// <summary>
|
||
/// 区域音效触发器:玩家进入 Collider2D 时广播 _onRegionEntered 事件频道。
|
||
/// 挂在区域边界的 GameObject 上,Collider2D 设置为 Is Trigger。
|
||
/// _zoneId 须与 AudioConfigSO.ZoneBGMs 中的 ZoneId 一致。
|
||
/// </summary>
|
||
[RequireComponent(typeof(Collider2D))]
|
||
public class AudioZone : MonoBehaviour
|
||
{
|
||
[SerializeField] private string _zoneId;
|
||
[SerializeField] private StringEventChannelSO _onRegionEntered;
|
||
|
||
private void OnTriggerEnter2D(Collider2D other)
|
||
{
|
||
if (!other.CompareTag("Player")) return;
|
||
if (_onRegionEntered != null)
|
||
_onRegionEntered.Raise(_zoneId);
|
||
}
|
||
}
|
||
}
|