65 lines
1.8 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
}
|