2 working sounds, updated scripts, fmod events
This commit is contained in:
@@ -7,6 +7,8 @@ using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
using STOP_MODE = FMOD.Studio.STOP_MODE;
|
||||
|
||||
public class AudioManager : MonoBehaviour
|
||||
{
|
||||
[Header("Volume")]
|
||||
@@ -133,6 +135,48 @@ public class AudioManager : MonoBehaviour
|
||||
Debug.LogWarning("EventReference is null, ignoring...");
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayOneShot3D(EventReference sound, Vector3 position)
|
||||
{
|
||||
if (!IsEventReferenceValid(sound))
|
||||
{
|
||||
Debug.LogWarning("Tried to play invalid FMOD event (3D)");
|
||||
return;
|
||||
}
|
||||
|
||||
RuntimeManager.PlayOneShot(sound, position);
|
||||
}
|
||||
|
||||
public EventInstance PlayAttachedInstance(EventReference sound, GameObject go)
|
||||
{
|
||||
if (!IsEventReferenceValid(sound))
|
||||
{
|
||||
Debug.LogWarning("Tried to play invalid FMOD event (attached)");
|
||||
return default;
|
||||
}
|
||||
|
||||
EventInstance instance = RuntimeManager.CreateInstance(sound);
|
||||
RuntimeManager.AttachInstanceToGameObject(instance, go);
|
||||
instance.start();
|
||||
|
||||
eventInstances.Add(instance);
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void StopInstance(EventInstance instance, STOP_MODE mode = STOP_MODE.ALLOWFADEOUT)
|
||||
{
|
||||
if (!instance.isValid()) return;
|
||||
instance.stop(mode);
|
||||
instance.release();
|
||||
eventInstances.Remove(instance);
|
||||
}
|
||||
|
||||
public void SetParameter(EventInstance instance, string parameterName, float value)
|
||||
{
|
||||
if (!instance.isValid()) return;
|
||||
instance.setParameterByName(parameterName, value);
|
||||
}
|
||||
|
||||
public void InitializeMusic(EventReference musicEventReference)
|
||||
{
|
||||
if (musicEventReference.Guid == nullGuid)
|
||||
|
||||
@@ -4,12 +4,21 @@ using UnityEngine;
|
||||
public class FMODEvents : MonoBehaviour
|
||||
{
|
||||
[field: Header("SFX")]
|
||||
[field: SerializeField] public EventReference TestSound { get; private set; }
|
||||
[field: SerializeField] public EventReference Steps { get; private set; }
|
||||
[field: SerializeField] public EventReference Teleport { get; private set; }
|
||||
[field: SerializeField] public EventReference UFODestroy { get; private set; }
|
||||
[field: SerializeField] public EventReference PortalEnter { get; private set; }
|
||||
[field: SerializeField] public EventReference SprayerTake { get; private set; }
|
||||
[field: SerializeField] public EventReference Spray { get; private set; }
|
||||
|
||||
[field: Header("CAR")]
|
||||
[field: SerializeField] public EventReference DoorOpen { get; private set; }
|
||||
[field: SerializeField] public EventReference DoorClose { get; private set; }
|
||||
|
||||
[field: Header("UI")]
|
||||
[field: SerializeField] public EventReference ButtonClick { get; private set; }
|
||||
[field: SerializeField] public EventReference ButtonSelect { get; private set; }
|
||||
[field: SerializeField] public EventReference Click { get; private set; }
|
||||
[field: SerializeField] public EventReference MapOpen { get; private set; }
|
||||
[field: SerializeField] public EventReference Hover { get; private set; }
|
||||
|
||||
public static FMODEvents Instance { get; private set; }
|
||||
|
||||
|
||||
35
Assets/_PROJECT/Scripts/Audio/LoadBank.cs
Normal file
35
Assets/_PROJECT/Scripts/Audio/LoadBank.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class LoadBankAndScene : MonoBehaviour
|
||||
{
|
||||
[FMODUnity.BankRef]
|
||||
public List<string> banks;
|
||||
public static event Action OnBanksLoaded;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
LoadBanks();
|
||||
}
|
||||
|
||||
public void LoadBanks()
|
||||
{
|
||||
foreach (string b in banks)
|
||||
{
|
||||
FMODUnity.RuntimeManager.LoadBank(b, true);
|
||||
Debug.Log("Loaded bank " + b);
|
||||
}
|
||||
StartCoroutine(CheckBanksLoaded());
|
||||
}
|
||||
|
||||
IEnumerator CheckBanksLoaded()
|
||||
{
|
||||
while (!FMODUnity.RuntimeManager.HaveAllBanksLoaded)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
OnBanksLoaded?.Invoke();
|
||||
}
|
||||
}
|
||||
11
Assets/_PROJECT/Scripts/Audio/LoadBank.cs.meta
Normal file
11
Assets/_PROJECT/Scripts/Audio/LoadBank.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26520d10d6a04d84fbbdad4ae135f015
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user