62 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|