public static void Duplicate(InAudioNode audioNode) { InUndoHelper.DoInGroup(() => { List <Object> toUndo = new List <Object>(AudioBankWorker.GetAllBanks().ConvertAll(b => b as Object)); toUndo.Add(audioNode._parent); toUndo.AddRange(audioNode._parent.GetAuxData()); toUndo.Add(audioNode.GetBank()); InUndoHelper.RecordObjectFull(toUndo.ToArray(), "Undo Duplication Of " + audioNode.Name); if (audioNode._parent._type == AudioNodeType.Random) { (audioNode._parent._nodeData as RandomData).weights.Add(50); } NodeWorker.DuplicateHierarchy(audioNode, (@oldNode, newNode) => { var gameObject = audioNode.gameObject; if (oldNode._nodeData != null) { NodeDuplicate(oldNode, newNode, gameObject); } }); }); }
private static void MoveNode(InAudioNode node, InAudioNode nodeToMove) { InUndoHelper.RecordObject( new UnityEngine.Object[] { node, node._nodeData, node._parent, node._parent != null ? node._parent._nodeData : null, nodeToMove._parent._nodeData, nodeToMove, nodeToMove._parent, nodeToMove._parent._nodeData }.AddObj( AudioBankWorker.GetAllBanks().ToArray()), "Audio Node Move"); NodeWorker.ReasignNodeParent(nodeToMove, node); AudioBankWorker.RebuildBanks(); Event.current.UseEvent(); }
public static void CopyTo(InAudioNode audioNode, InAudioNode newParent) { List <Object> toUndo = new List <Object>(AudioBankWorker.GetAllBanks().ConvertAll(b => b as Object)); toUndo.Add(audioNode._parent); toUndo.AddRange(audioNode._parent.GetAuxData()); toUndo.Add(audioNode.GetBank()); InUndoHelper.RecordObjectFull(toUndo.ToArray(), "Undo Move"); NodeWorker.DuplicateHierarchy(audioNode, newParent, newParent.gameObject, (@oldNode, newNode) => { var gameObject = newParent.gameObject; if (oldNode._nodeData != null) { NodeDuplicate(oldNode, newNode, gameObject); } }); }