Files
DeltaVR/Assets/_PROJECT/Components/Server room/Alarm Trigger.cs
2025-12-21 00:01:28 +02:00

65 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Runtime.Remoting.Messaging;
using UnityEngine;
using UnityEngine.XR.Content.Interaction;
using FMOD.Studio;
public class AlarmTrigger : MonoBehaviour
{
public XRPushButton PushButton;
private EventInstance RoomHum;
private EventInstance AlarmSound;
private FirstPersonOcclusion occlusion;
private void Awake()
{
RoomHum = AudioManager.Instance.CreateInstance(FMODEvents.Instance.ServerRoomHumming); //initialise the instance
AlarmSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.ServerRoomAlarm); //initialise the instance
occlusion = GetComponent<FirstPersonOcclusion>(); //apply occlusion
if (occlusion != null)
{
occlusion.InitialiseWithInstance(RoomHum);
//occlusion.InitialiseWithInstance(AlarmSound);
}
}
void Start()
{
//start playing the Server overall sound
//RoomHum.start();
if (PushButton != null)
{
PushButton.onPress.AddListener(OnButtonPressed);
}
}
void OnButtonPressed()
{
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ServerRoomButton, PushButton.gameObject); //3d oneshot instance
Debug.Log("Alarm button Pressed!");
RoomHum.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
AlarmSound.start();
}
void Update()
{
RoomHum.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //updating 3d attributes
AlarmSound.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //updating 3d attributes
// If alarm finished, restart hum once
if (!AudioManager.IsPlaying(AlarmSound) && !AudioManager.IsPlaying(RoomHum))
{
//RoomHum.start();
}
}
}