2 using System.Collections.Generic;
6 [AddComponentMenu("FMOD Studio/FMOD Studio Bank Loader")]
7 public class StudioBankLoader : MonoBehaviour
9 public LoaderGameEvent LoadEvent;
10 public LoaderGameEvent UnloadEvent;
12 public List<string> Banks;
13 public string CollisionTag;
14 public bool PreloadSamples;
15 private bool isQuitting;
17 void HandleGameEvent(LoaderGameEvent gameEvent)
19 if (LoadEvent == gameEvent)
23 if (UnloadEvent == gameEvent)
31 RuntimeUtils.EnforceLibraryOrder();
32 HandleGameEvent(LoaderGameEvent.ObjectStart);
35 void OnApplicationQuit()
44 HandleGameEvent(LoaderGameEvent.ObjectDestroy);
48 void OnTriggerEnter(Collider other)
50 if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
52 HandleGameEvent(LoaderGameEvent.TriggerEnter);
56 void OnTriggerExit(Collider other)
58 if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
60 HandleGameEvent(LoaderGameEvent.TriggerExit);
64 void OnTriggerEnter2D(Collider2D other)
66 if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
68 HandleGameEvent(LoaderGameEvent.TriggerEnter2D);
72 void OnTriggerExit2D(Collider2D other)
74 if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
76 HandleGameEvent(LoaderGameEvent.TriggerExit2D);
82 foreach (var bankRef in Banks)
86 RuntimeManager.LoadBank(bankRef, PreloadSamples);
88 catch (BankLoadException e)
90 UnityEngine.Debug.LogException(e);
93 RuntimeManager.WaitForAllLoads();
98 foreach (var bankRef in Banks)
100 RuntimeManager.UnloadBank(bankRef);