public static InAudioBankLink CreateBank(GameObject go, InAudioBankLink parent, int guid) { InAudioBankLink link = CreateBankLink(go, parent, guid); SaveAndLoad.CreateAudioBank(guid); return(link); }
public static void Unload(InAudioBankLink bank) { var bankData = bank._bankData; for (int i = 0; i < bankData.Count; i++) { var data = bankData[i]; var node = data.AudioNode; if (node != null) { var audioData = node._nodeData as InAudioData; if (audioData != null && audioData._clip != null) { audioData._clip.UnloadIfPossible(); } } else if (data.MusicNode != null) { var clips = data.MusicNode._clips; for (int j = 0; j < clips.Count; j++) { var clip = clips[j]; if (clip != null) { clip.UnloadIfPossible(); } } } } Resources.UnloadUnusedAssets(); bank.IsLoaded = false; }
public static void RebuildBanks(InAudioBankLink rootBank, InAudioNode root) { SystemFolderHelper.CreateIfMissing(FolderSettings.BankCreateFolder); TreeWalker.ForEach(rootBank, CreateIfMissing); TreeWalker.ForEach(rootBank, DeleteAllNodesFromBanks); TreeWalker.ForEach(root, node => { var folderData = node.NodeData as InFolderData; if (folderData != null && folderData.BankLink == null) { folderData.BankLink = rootBank; } }); TreeWalker.ForEach(root, AddNodesToBank); //Set the bank of the root node if it is missing InFolderData inFolderData = root.NodeData as InFolderData; if (inFolderData != null && inFolderData.BankLink == null) { inFolderData.BankLink = TreeWalker.FindFirst(rootBank, link => link.Type == AudioBankTypes.Link); } if (inFolderData.BankLink != null) { TreeWalker.ForEach(root, SetBanks); } }
public static InAudioBankLink CreateFolder(GameObject go, InAudioBankLink parent, int guid) { var node = CreateNode(go, parent, guid); node.Name = parent.Name + " Child Folder"; node.Type = AudioBankTypes.Folder; return(node); }
private static InAudioBankLink CreateBankLink(GameObject go, InAudioBankLink parent, int guid) { var node = CreateNode(go, parent, guid); node.Name = parent.Name + " Child"; node.Type = AudioBankTypes.Link; return(node); }
public static InAudioBank LoadBank(InAudioBankLink bankLink) { if (bankLink == null) { return(null); } return(SaveAndLoad.LoadAudioBank(bankLink.ID)); }
public static bool Load(InAudioBankLink bankLink) { if (bankLink == null) { return(false); } return(LoadBank(bankLink)); }
private static InAudioBankLink CreateNode(GameObject go, InAudioBankLink parent, int guid) { var node = go.AddComponentUndo <InAudioBankLink>(); node.GUID = guid; node.IsFoldedOut = true; node.AssignParent(parent); return(node); }
public static bool IsLoaded(InAudioBankLink bankLink) { if (bankLink == null) { return(false); } return(bankLink.IsLoaded); }
public static void DeleteFolder(InAudioBankLink toDelete) { UndoHelper.DoInGroup(() => { UndoHelper.RecordObjectFull(toDelete.Parent, "Delete Bank Folder"); toDelete.Parent.GetChildren.Remove(toDelete); UndoHelper.Destroy(toDelete); }); }
private static void DeleteAllNodesFromBanks(InAudioBankLink audioBankLink) { if (audioBankLink.Type == AudioBankTypes.Link) { if (audioBankLink.LazyBankFetch != null) { audioBankLink.LazyBankFetch.Clips.Clear(); } } }
public static void ChangeBankOverride(InAudioNode node, InAudioBankLink rootBank, InAudioNode root) { var all = TreeWalker.FindAll(rootBank, link => link.Type == AudioBankTypes.Link ? link.LazyBankFetch : null); UndoHelper.RecordObject(all.ToArray().AddObj(node.NodeData), "Changed Bank"); InFolderData data = (node.NodeData as InFolderData); data.OverrideParentBank = !data.OverrideParentBank; RebuildBanks(rootBank, root); }
public static InAudioBank Load(InAudioBankLink bankLink) { if (bankLink == null) { return(null); } bankLink.LoadedBank = LoadBank(bankLink); if (bankLink.LoadedBank == null) { Debug.LogError("InAudio: Bank with name \"" + bankLink.Name + "\", id " + bankLink.GUID + " could not be found. Please open the Integrity Window and rebuild Bank Integrity"); return(null); } if (Application.isPlaying && InAudioInstanceFinder.DataManager != null) { InAudioInstanceFinder.DataManager.BankIsLoaded(bankLink.LoadedBank); bool warning = false; for (int i = 0; i < bankLink.LoadedBank.Clips.Count; i++) { var node = bankLink.LoadedBank.Clips[i].Node; if (node == null) { warning = true; continue; } var data = node.NodeData as InAudioData; if (data == null) { warning = true; continue; } (bankLink.LoadedBank.Clips[i].Node.NodeData as InAudioData).RuntimeClip = bankLink.LoadedBank.Clips[i].Clip; } if (warning) { Debug.LogError("One or more audio nodes are missing from the bank \"" + bankLink.Name + "\", id " + bankLink.ID + ".\nPlease open the InAudio Integrity Window and rebuild the banks"); } bankLink.IsLoaded = true; } return(bankLink.LoadedBank); }
private static void LoadAuto(InAudioBankLink bankLink) { if (bankLink == null) { return; } if (bankLink.AutoLoad) { Load(bankLink); } for (int i = 0; i < bankLink.Children.Count; ++i) { LoadAuto(bankLink.Children[i]); } }
private static void CreateIfMissing(InAudioBankLink bankLink) { if (bankLink != null && bankLink.Type == AudioBankTypes.Link) { bankLink.LoadedBank = BankLoader.LoadBank(bankLink); if (bankLink.LoadedBank == null) { GameObject go = BankLoader.GetBankGO(bankLink.ID); if (go == null) { SaveAndLoad.CreateAudioBank(bankLink.ID); Debug.Log("Created missing Bank " + bankLink.Name + " with id " + bankLink.ID); } else { var bank = go.AddComponent <InAudioBank>(); bank.GUID = bankLink.ID; Debug.Log("Created missing Bank \n" + bankLink.Name + "\n with id " + bankLink.ID); } } } }
public static void Unload(InAudioBankLink bankLink) { InAudioBank bank = bankLink.LoadedBank; if (bank != null) { for (int i = 0; i < bank.Clips.Count; i++) { var node = bank.Clips[i].Node; if (node != null) { var audioData = node.NodeData as InAudioData; if (audioData != null) { audioData.Clip = null; } } } Resources.UnloadUnusedAssets(); bankLink.IsLoaded = false; } }
private static bool LoadBank(InAudioBankLink bankLink) { if (bankLink == null) { return(false); } var bankData = bankLink._bankData; for (int i = 0; i < bankData.Count; i++) { var audioNode = bankData[i].AudioNode; var musicNode = bankData[i].MusicNode; if (audioNode != null) { var data = audioNode._nodeData as InAudioData; if (data != null && data._clip != null) { data._clip.LoadIfPossible(); } } else if (musicNode != null) { var clips = musicNode._clips; for (int j = 0; j < clips.Count; j++) { if (clips[j] != null) { clips[j].LoadIfPossible(); } } } } bankLink.IsLoaded = true; return(true); }
public static void DeleteBank(InAudioBankLink toDelete) { AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(toDelete.LazyBankFetch.gameObject)); toDelete.Parent.GetChildren.Remove(toDelete); Object.DestroyImmediate(toDelete, true); }