67 lines
1.8 KiB
C#
67 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.Remoting.Messaging;
|
|
using UnityEngine;
|
|
using UnityEngine.PlayerLoop;
|
|
using UnityEngine.XR.Content.Interaction;
|
|
using FMOD.Studio;
|
|
|
|
public class AlarmTrigger : MonoBehaviour
|
|
{
|
|
public XRPushButton PushButton;
|
|
public AudioSource AlarmSequence;
|
|
public AudioSource VentilationSequence;
|
|
|
|
private EventInstance RoomHum;
|
|
private EventInstance AlarmSound;
|
|
private bool hasAlarm = false;
|
|
|
|
private void Awake()
|
|
{
|
|
RoomHum = AudioManager.Instance.CreateInstance(FMODEvents.Instance.ServerRoomHumming);
|
|
RoomHum.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject));
|
|
|
|
AlarmSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.ServerRoomAlarm);
|
|
AlarmSound.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject));
|
|
|
|
|
|
}
|
|
void Start()
|
|
{
|
|
if (PushButton != null)
|
|
{
|
|
PushButton.onPress.AddListener(OnButtonPressed);
|
|
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ServerRoomButton, gameObject);
|
|
|
|
}
|
|
}
|
|
|
|
void OnButtonPressed()
|
|
{
|
|
Debug.Log("Alarm button Pressed!");
|
|
|
|
if (!AudioManager.IsPlaying(AlarmSound)){ //if alarm isn't already triggered.
|
|
VentilationSequence.Stop();
|
|
AlarmSequence.Play();
|
|
|
|
AlarmSound.start();
|
|
AudioManager.Instance.StopInstance(RoomHum, STOP_MODE.ALLOWFADEOUT);
|
|
|
|
|
|
hasAlarm = true;
|
|
}
|
|
}
|
|
void Update()
|
|
{
|
|
if(hasAlarm && !AudioManager.IsPlaying(AlarmSound)) // If alarm state has ended.
|
|
{
|
|
VentilationSequence.Play(); // Return to normal.
|
|
|
|
RoomHum.start();
|
|
|
|
hasAlarm = false;
|
|
}
|
|
}
|
|
|
|
}
|