Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/ResidenceAudioEvents.cs
2026-03-04 10:03:45 +08:00

62 lines
2.2 KiB
C#

using System;
using UnityEngine;
using UnityEngine.Events;
public class ResidenceAudioEvents : MonoBehaviour
{
[Header("Residence")]
[Space(10f)]
public UnityEvent<Transform> OnResidenceLampBuzz;
public UnityEvent<Transform> OnResidenceLampStopBuzz;
public UnityEvent<Transform> OnResidencePlayerSpawn;
public UnityEvent<Transform> OnDoorOpenPLay;
public UnityEvent<Transform> OnDoorOpenStop;
private void OnEnable()
{
ResidenceLampsItem.OnLampBuzzGlobal = (Action<Transform>)Delegate.Combine(ResidenceLampsItem.OnLampBuzzGlobal, new Action<Transform>(OnResidenceLampBuzzPlay));
ResidenceLampsItem.OnLampBuzzStopGlobal = (Action<Transform>)Delegate.Combine(ResidenceLampsItem.OnLampBuzzStopGlobal, new Action<Transform>(OnResidenceLampStopBuzzStop));
PlayerResidence.OnResidencePlayerSpawnGlobal = (Action<Transform>)Delegate.Combine(PlayerResidence.OnResidencePlayerSpawnGlobal, new Action<Transform>(OnResidencePlayerSpawnPlay));
DoorTrigger.OnDoorOpen += DoorTrigger_OnDoorOpen;
DoorTrigger.OnDoorClose += DoorTrigger_OnDoorClose;
}
private void OnDisable()
{
ResidenceLampsItem.OnLampBuzzGlobal = (Action<Transform>)Delegate.Remove(ResidenceLampsItem.OnLampBuzzGlobal, new Action<Transform>(OnResidenceLampBuzzPlay));
ResidenceLampsItem.OnLampBuzzStopGlobal = (Action<Transform>)Delegate.Remove(ResidenceLampsItem.OnLampBuzzStopGlobal, new Action<Transform>(OnResidenceLampStopBuzzStop));
PlayerResidence.OnResidencePlayerSpawnGlobal = (Action<Transform>)Delegate.Remove(PlayerResidence.OnResidencePlayerSpawnGlobal, new Action<Transform>(OnResidencePlayerSpawnPlay));
DoorTrigger.OnDoorOpen -= DoorTrigger_OnDoorOpen;
DoorTrigger.OnDoorClose -= DoorTrigger_OnDoorClose;
}
private void OnResidenceLampBuzzPlay(Transform transform)
{
OnResidenceLampBuzz?.Invoke(transform);
}
private void OnResidenceLampStopBuzzStop(Transform transform)
{
OnResidenceLampStopBuzz?.Invoke(transform);
}
private void OnResidencePlayerSpawnPlay(Transform transform)
{
OnResidencePlayerSpawn?.Invoke(transform);
}
private void DoorTrigger_OnDoorOpen(DoorTrigger dt)
{
OnDoorOpenPLay?.Invoke(dt.transform);
}
private void DoorTrigger_OnDoorClose(DoorTrigger dt)
{
OnDoorOpenStop?.Invoke(dt.transform);
}
}