static private GetBankPath ( string bankName ) : string | ||
bankName | string | |
return | string |
public static void LoadBank(string bankName, bool loadSamples = false) { if (Instance.loadedBanks.ContainsKey(bankName)) { LoadedBank loadedBank = Instance.loadedBanks[bankName]; loadedBank.RefCount++; if (loadSamples) { loadedBank.Bank.loadSampleData(); } Instance.loadedBanks[bankName] = loadedBank; } else { string bankPath = RuntimeUtils.GetBankPath(bankName); FMOD.RESULT loadResult; #if UNITY_ANDROID && !UNITY_EDITOR if (Settings.Instance.AndroidUseOBB) { #if UNITY_2018_1_OR_NEWER Instance.StartCoroutine(Instance.loadFromWeb(bankPath, bankName, loadSamples)); #else using (var www = new WWW(bankPath)) { while (!www.isDone) { } if (!String.IsNullOrEmpty(www.error)) { throw new BankLoadException(bankPath, www.error); } else { LoadedBank loadedBank = new LoadedBank(); loadResult = Instance.studioSystem.loadBankMemory(www.bytes, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); Instance.loadedBankRegister(loadedBank, bankPath, bankName, loadSamples, loadResult); } } #endif } else #elif UNITY_WEBGL && !UNITY_EDITOR if (true) { Instance.StartCoroutine(Instance.loadFromWeb(bankPath, bankName, loadSamples)); } else #endif // (UNITY_ANDROID || UNITY_WEBGL) && !UNITY_EDITOR { LoadedBank loadedBank = new LoadedBank(); loadResult = Instance.studioSystem.loadBankFile(bankPath, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); Instance.loadedBankRegister(loadedBank, bankPath, bankName, loadSamples, loadResult); } } }
public static void LoadBank(string bankName, bool loadSamples = false) { if (Instance.loadedBanks.ContainsKey(bankName)) { LoadedBank loadedBank = Instance.loadedBanks[bankName]; loadedBank.RefCount++; if (loadSamples) { loadedBank.Bank.loadSampleData(); } Instance.loadedBanks[bankName] = loadedBank; } else { string bankPath = RuntimeUtils.GetBankPath(bankName); FMOD.RESULT loadResult; #if UNITY_ANDROID && !UNITY_EDITOR if (!bankPath.StartsWith("file:///android_asset")) { using (var www = new WWW(bankPath)) { while (!www.isDone) { } if (!String.IsNullOrEmpty(www.error)) { throw new BankLoadException(bankPath, www.error); } else { LoadedBank loadedBank = new LoadedBank(); loadResult = Instance.studioSystem.loadBankMemory(www.bytes, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); //loadedBankRegister(loadedBank, bankPath, bankName, loadSamples, loadResult); } } } else #elif UNITY_WEBGL if (bankPath.Contains("://")) { Instance.StartCoroutine(Instance.loadFromWeb(bankPath, bankName, loadSamples)); } else #endif { LoadedBank loadedBank = new LoadedBank(); loadResult = Instance.studioSystem.loadBankFile(bankPath, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); Instance.loadedBankRegister(loadedBank, bankPath, bankName, loadSamples, loadResult); } } }
public static void LoadBank(string bankName, bool loadSamples = false) { if (Instance.loadedBanks.ContainsKey(bankName)) { LoadedBank value = Instance.loadedBanks[bankName]; value.RefCount++; if (loadSamples) { value.Bank.loadSampleData(); } Instance.loadedBanks[bankName] = value; } else { string bankPath = RuntimeUtils.GetBankPath(bankName); LoadedBank loadedBank = default(LoadedBank); RESULT loadResult = Instance.studioSystem.loadBankFile(bankPath, LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); Instance.loadedBankRegister(loadedBank, bankPath, bankName, loadSamples, loadResult); } }
public static void LoadBank(string bankName, bool loadSamples = false) { if (Instance.loadedBanks.ContainsKey(bankName)) { LoadedBank loadedBank = Instance.loadedBanks[bankName]; loadedBank.RefCount++; if (loadSamples) { loadedBank.Bank.loadSampleData(); } } else { LoadedBank loadedBank = new LoadedBank(); string bankPath = RuntimeUtils.GetBankPath(bankName); var loadResult = Instance.studioSystem.loadBankFile(bankPath, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); if (loadResult == FMOD.RESULT.OK) { loadedBank.RefCount = 1; Instance.loadedBanks.Add(bankName, loadedBank); if (loadSamples) { loadedBank.Bank.loadSampleData(); } } else if (loadResult == FMOD.RESULT.ERR_EVENT_ALREADY_LOADED) { // someone loaded this bank directly using the studio API // TODO: will the null bank handle be an issue loadedBank.RefCount = 2; Instance.loadedBanks.Add(bankName, loadedBank); } else { throw new BankLoadException(bankPath, loadResult); } } }
public static void LoadBank(string bankName, bool loadSamples = false) { if (Instance.loadedBanks.ContainsKey(bankName)) { LoadedBank loadedBank = Instance.loadedBanks[bankName]; loadedBank.RefCount++; if (loadSamples) { loadedBank.Bank.loadSampleData(); } } else { LoadedBank loadedBank = new LoadedBank(); string bankPath = RuntimeUtils.GetBankPath(bankName); FMOD.RESULT loadResult; #if UNITY_ANDROID && !UNITY_EDITOR if (!bankPath.StartsWith("file:///android_asset")) { using (var www = new WWW(bankPath)) { while (!www.isDone) { } if (!String.IsNullOrEmpty(www.error)) { throw new BankLoadException(bankPath, www.error); } else { loadResult = Instance.studioSystem.loadBankMemory(www.bytes, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); } } } else #endif { loadResult = Instance.studioSystem.loadBankFile(bankPath, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out loadedBank.Bank); } if (loadResult == FMOD.RESULT.OK) { loadedBank.RefCount = 1; Instance.loadedBanks.Add(bankName, loadedBank); if (loadSamples) { loadedBank.Bank.loadSampleData(); } } else if (loadResult == FMOD.RESULT.ERR_EVENT_ALREADY_LOADED) { // someone loaded this bank directly using the studio API // TODO: will the null bank handle be an issue loadedBank.RefCount = 2; Instance.loadedBanks.Add(bankName, loadedBank); } else { throw new BankLoadException(bankPath, loadResult); } } }