PreallocateGUIDs() private method

private PreallocateGUIDs ( ) : void
return void
コード例 #1
0
        private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup, bool recordUndo)
        {
            var targetGroup = new AudioMixerGroupController(this);

            // Copy effects
            var targetEffectsList = new List <AudioMixerEffectController>();

            foreach (var sourceEffect in sourceGroup.effects)
            {
                targetEffectsList.Add(CopyEffect(sourceEffect));
            }

            // Copy child groups
            var targetChildren = new List <AudioMixerGroupController>();

            foreach (var childGroup in sourceGroup.children)
            {
                targetChildren.Add(DuplicateGroupRecurse(childGroup, recordUndo));
            }

            targetGroup.name = sourceGroup.name + " - Copy";
            targetGroup.PreallocateGUIDs();
            targetGroup.effects       = targetEffectsList.ToArray();
            targetGroup.children      = targetChildren.ToArray();
            targetGroup.solo          = sourceGroup.solo;
            targetGroup.mute          = sourceGroup.mute;
            targetGroup.bypassEffects = sourceGroup.bypassEffects;
            float value;

            foreach (var s in snapshots)
            {
                if (s.GetValue(sourceGroup.GetGUIDForVolume(), out value))
                {
                    s.SetValue(targetGroup.GetGUIDForVolume(), value);
                }
                if (s.GetValue(sourceGroup.GetGUIDForPitch(), out value))
                {
                    s.SetValue(targetGroup.GetGUIDForPitch(), value);
                }
                if (s.GetValue(sourceGroup.GetGUIDForSend(), out value))
                {
                    s.SetValue(targetGroup.GetGUIDForSend(), value);
                }
            }

            AssetDatabase.AddObjectToAsset(targetGroup, this);

            if (recordUndo)
            {
                Undo.RegisterCreatedObjectUndo(targetGroup, targetGroup.name);
            }

            // Add to view if source is shown (so it's visible in the channelstrip)
            if (CurrentViewContainsGroup(sourceGroup.groupID))
            {
                targetGroup.controller.AddGroupToCurrentView(targetGroup);
            }

            return(targetGroup);
        }
コード例 #2
0
        public AudioMixerGroupController CreateNewGroup(string name, bool storeUndoState)
        {
            var group = new AudioMixerGroupController(this);

            group.name = name;
            group.PreallocateGUIDs();

            var effect = new AudioMixerEffectController("Attenuation");

            AddNewSubAsset(effect, storeUndoState);
            effect.PreallocateGUIDs();

            group.InsertEffect(effect, 0);
            AddNewSubAsset(group, storeUndoState);

            return(group);
        }
コード例 #3
0
        public void CreateDefaultAsset(string path)
        {
            masterGroup      = new AudioMixerGroupController(this);
            masterGroup.name = "Master";
            masterGroup.PreallocateGUIDs();

            var attenuation = new AudioMixerEffectController("Attenuation");

            attenuation.PreallocateGUIDs();
            masterGroup.InsertEffect(attenuation, 0);

            AudioMixerSnapshotController snapshot = new AudioMixerSnapshotController(this);

            snapshot.name  = "Snapshot";
            this.snapshots = new AudioMixerSnapshotController[] { snapshot };

            this.startSnapshot = snapshot;

            Object[] objectArray = { this, masterGroup, attenuation, snapshot };
            AssetDatabase.CreateAssetFromObjects(objectArray, path);
        }
コード例 #4
0
 private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup)
 {
   AudioMixerGroupController group = new AudioMixerGroupController((AudioMixer) this);
   List<AudioMixerEffectController> effectControllerList = new List<AudioMixerEffectController>();
   foreach (AudioMixerEffectController effect in sourceGroup.effects)
     effectControllerList.Add(this.CopyEffect(effect));
   List<AudioMixerGroupController> mixerGroupControllerList = new List<AudioMixerGroupController>();
   foreach (AudioMixerGroupController child in sourceGroup.children)
     mixerGroupControllerList.Add(this.DuplicateGroupRecurse(child));
   group.name = sourceGroup.name + " - Copy";
   group.PreallocateGUIDs();
   group.effects = effectControllerList.ToArray();
   group.children = mixerGroupControllerList.ToArray();
   group.solo = sourceGroup.solo;
   group.mute = sourceGroup.mute;
   group.bypassEffects = sourceGroup.bypassEffects;
   foreach (AudioMixerSnapshotController snapshot in this.snapshots)
   {
     float num;
     if (snapshot.GetValue(sourceGroup.GetGUIDForVolume(), out num))
       snapshot.SetValue(group.GetGUIDForVolume(), num);
     if (snapshot.GetValue(sourceGroup.GetGUIDForPitch(), out num))
       snapshot.SetValue(group.GetGUIDForPitch(), num);
   }
   AssetDatabase.AddObjectToAsset((UnityEngine.Object) group, (UnityEngine.Object) this);
   if (this.CurrentViewContainsGroup(sourceGroup.groupID))
     group.controller.AddGroupToCurrentView(group);
   return group;
 }
コード例 #5
0
 public AudioMixerGroupController CreateNewGroup(string name, bool storeUndoState)
 {
   AudioMixerGroupController mixerGroupController = new AudioMixerGroupController((AudioMixer) this);
   mixerGroupController.name = name;
   mixerGroupController.PreallocateGUIDs();
   AudioMixerEffectController effect = new AudioMixerEffectController("Attenuation");
   this.AddNewSubAsset((UnityEngine.Object) effect, storeUndoState);
   effect.PreallocateGUIDs();
   mixerGroupController.InsertEffect(effect, 0);
   this.AddNewSubAsset((UnityEngine.Object) mixerGroupController, storeUndoState);
   return mixerGroupController;
 }
コード例 #6
0
		private AudioMixerGroupController DuplicateGroupRecurse(AudioMixerGroupController sourceGroup)
		{
			AudioMixerGroupController audioMixerGroupController = new AudioMixerGroupController(this);
			List<AudioMixerEffectController> list = new List<AudioMixerEffectController>();
			AudioMixerEffectController[] effects = sourceGroup.effects;
			for (int i = 0; i < effects.Length; i++)
			{
				AudioMixerEffectController sourceEffect = effects[i];
				list.Add(this.CopyEffect(sourceEffect));
			}
			List<AudioMixerGroupController> list2 = new List<AudioMixerGroupController>();
			AudioMixerGroupController[] children = sourceGroup.children;
			for (int j = 0; j < children.Length; j++)
			{
				AudioMixerGroupController sourceGroup2 = children[j];
				list2.Add(this.DuplicateGroupRecurse(sourceGroup2));
			}
			audioMixerGroupController.name = sourceGroup.name + " - Copy";
			audioMixerGroupController.PreallocateGUIDs();
			audioMixerGroupController.effects = list.ToArray();
			audioMixerGroupController.children = list2.ToArray();
			audioMixerGroupController.solo = sourceGroup.solo;
			audioMixerGroupController.mute = sourceGroup.mute;
			audioMixerGroupController.bypassEffects = sourceGroup.bypassEffects;
			AudioMixerSnapshotController[] snapshots = this.snapshots;
			for (int k = 0; k < snapshots.Length; k++)
			{
				AudioMixerSnapshotController audioMixerSnapshotController = snapshots[k];
				float value;
				if (audioMixerSnapshotController.GetValue(sourceGroup.GetGUIDForVolume(), out value))
				{
					audioMixerSnapshotController.SetValue(audioMixerGroupController.GetGUIDForVolume(), value);
				}
				if (audioMixerSnapshotController.GetValue(sourceGroup.GetGUIDForPitch(), out value))
				{
					audioMixerSnapshotController.SetValue(audioMixerGroupController.GetGUIDForPitch(), value);
				}
			}
			AssetDatabase.AddObjectToAsset(audioMixerGroupController, this);
			if (this.CurrentViewContainsGroup(sourceGroup.groupID))
			{
				audioMixerGroupController.controller.AddGroupToCurrentView(audioMixerGroupController);
			}
			return audioMixerGroupController;
		}
コード例 #7
0
		public AudioMixerGroupController CreateNewGroup(string name, bool storeUndoState)
		{
			AudioMixerGroupController audioMixerGroupController = new AudioMixerGroupController(this);
			audioMixerGroupController.name = name;
			audioMixerGroupController.PreallocateGUIDs();
			AudioMixerEffectController audioMixerEffectController = new AudioMixerEffectController("Attenuation");
			this.AddNewSubAsset(audioMixerEffectController, storeUndoState);
			audioMixerEffectController.PreallocateGUIDs();
			audioMixerGroupController.InsertEffect(audioMixerEffectController, 0);
			this.AddNewSubAsset(audioMixerGroupController, storeUndoState);
			return audioMixerGroupController;
		}