Skip to content

Commit 3e44e90

Browse files
author
Unity Technologies
committed
Unity 2022.1.0a10 C# reference source code
1 parent 7f267f1 commit 3e44e90

File tree

103 files changed

+2741
-2160
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+2741
-2160
lines changed

Editor/Mono/AssetPipeline/ComputeShaderImporter.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ namespace UnityEditor
1010
[NativeHeader("Editor/Src/AssetPipeline/ComputeShaderImporter.h")]
1111
public sealed partial class ComputeShaderImporter : AssetImporter
1212
{
13-
[NativeProperty("PreprocessorOverride")] extern public PreprocessorOverride preprocessorOverride { get; set; }
13+
public PreprocessorOverride preprocessorOverride { get { return PreprocessorOverride.UseProjectSettings; } set {} }
1414
}
1515
}

Editor/Mono/AssetPipeline/ShaderImporter.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ public sealed partial class ShaderImporter : AssetImporter
2020

2121
public extern Texture GetNonModifiableTexture(string name);
2222

23-
[NativeProperty("PreprocessorOverride")] extern public PreprocessorOverride preprocessorOverride { get; set; }
23+
public PreprocessorOverride preprocessorOverride { get { return PreprocessorOverride.UseProjectSettings; } set {} }
2424
}
2525
}

Editor/Mono/Audio/Mixer/Bindings/AudioMixerController.cs

Lines changed: 299 additions & 149 deletions
Large diffs are not rendered by default.

Editor/Mono/Audio/Mixer/Bindings/AudioMixerGroup.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,26 @@
22
// Copyright (c) Unity Technologies. For terms of use, see
33
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
44

5-
using UnityEngine;
6-
using UnityEditor;
7-
using UnityEditor.Audio;
8-
using System.IO;
9-
using System.Collections.Generic;
105
using System;
6+
using System.Collections.Generic;
7+
using UnityEngine;
118

129
namespace UnityEditor.Audio
1310
{
1411
[ExcludeFromPreset]
15-
internal partial class AudioMixerGroupController
12+
partial class AudioMixerGroupController
1613
{
14+
public static Dictionary<AudioMixerEffectController, AudioMixerGroupController> GetEffectMapSlow(List<AudioMixerGroupController> allGroups)
15+
{
16+
var effectMap = new Dictionary<AudioMixerEffectController, AudioMixerGroupController>();
17+
18+
foreach (var g in allGroups)
19+
foreach (var e in g.effects)
20+
effectMap[e] = g;
21+
22+
return effectMap;
23+
}
24+
1725
public void InsertEffect(AudioMixerEffectController effect, int index)
1826
{
1927
var modifiedEffectsList = new List<AudioMixerEffectController>(effects);
@@ -62,7 +70,7 @@ public override string ToString()
6270
}
6371
}
6472

65-
internal class MixerGroupControllerCompareByName : IComparer<AudioMixerGroupController>
73+
class MixerGroupControllerCompareByName : IComparer<AudioMixerGroupController>
6674
{
6775
public int Compare(AudioMixerGroupController x, AudioMixerGroupController y)
6876
{

Editor/Mono/Audio/Mixer/GUI/AudioMixerChannelStripView.cs

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using UnityEditor.Audio;
1111
using System.Globalization;
1212
using UnityEngine.Audio;
13+
using Object = UnityEngine.Object;
1314

1415
namespace UnityEditor
1516
{
@@ -206,7 +207,6 @@ public void RemoveEffectPopupCallback(object obj)
206207
if (context.index >= group.effects.Length)
207208
continue;
208209
AudioMixerEffectController effect = group.effects[context.index];
209-
context.controller.ClearSendConnectionsTo(effect);
210210
context.controller.RemoveEffect(effect, group);
211211
}
212212

@@ -215,20 +215,37 @@ public void RemoveEffectPopupCallback(object obj)
215215

216216
public class ConnectSendContext
217217
{
218-
public ConnectSendContext(AudioMixerEffectController sendEffect, AudioMixerEffectController targetEffect)
218+
public ConnectSendContext(AudioMixerController controller, AudioMixerEffectController sendEffect, AudioMixerEffectController targetEffect)
219219
{
220+
this.controller = controller;
220221
this.sendEffect = sendEffect;
221222
this.targetEffect = targetEffect;
222223
}
223224

225+
public AudioMixerController controller;
224226
public AudioMixerEffectController sendEffect;
225227
public AudioMixerEffectController targetEffect;
226228
}
227229

228230
public static void ConnectSendPopupCallback(object obj)
229231
{
230-
ConnectSendContext context = (ConnectSendContext)obj;
231-
Undo.RecordObject(context.sendEffect, "Change Send Target");
232+
var context = (ConnectSendContext)obj;
233+
234+
if (context.targetEffect == null)
235+
{
236+
var guid = context.sendEffect.GetGUIDForMixLevel();
237+
238+
if (context.controller.ContainsExposedParameter(guid))
239+
{
240+
Undo.RecordObjects(new Object[] {context.controller, context.sendEffect}, "Remove Send Target");
241+
context.controller.RemoveExposedParameter(guid);
242+
}
243+
}
244+
else
245+
{
246+
Undo.RecordObject(context.sendEffect, "Change Send Target");
247+
}
248+
232249
context.sendEffect.sendTarget = context.targetEffect;
233250
AudioMixerUtility.RepaintAudioMixerAndInspectors();
234251
}
@@ -980,7 +997,7 @@ static internal void AddEffectItemsToMenu(AudioMixerController controller, Audio
980997
for (int t = 0; t < effectNames.Length; t++)
981998
{
982999
if (effectNames[t] != "Attenuation")
983-
pm.AddItem(new GUIContent(prefix + AudioMixerController.FixNameForPopupMenu(effectNames[t])),
1000+
pm.AddItem(new GUIContent(prefix + effectNames[t]),
9841001
false,
9851002
InsertEffectPopupCallback,
9861003
new EffectContext(controller, groups, insertIndex, effectNames[t]));
@@ -1030,7 +1047,9 @@ private void DoEffectSlotInsertEffectPopup(Rect buttonRect, AudioMixerGroupContr
10301047
insertedSeparator = true;
10311048
pm.AddSeparator("");
10321049
}
1033-
pm.AddItem(EditorGUIUtility.TrTextContent("Disconnect from '" + effect.GetSendTargetDisplayString(effectMap) + "'") , false, ConnectSendPopupCallback, new ConnectSendContext(effect, null));
1050+
1051+
var sendContext = new ConnectSendContext(group.controller, effect, null);
1052+
pm.AddItem(EditorGUIUtility.TrTextContent("Disconnect from '" + effect.GetSendTargetDisplayString(effectMap) + "'") , false, ConnectSendPopupCallback, sendContext);
10341053
}
10351054

10361055
if (!insertedSeparator)
@@ -1074,11 +1093,14 @@ public static void AddMenuItemsForReturns(GenericMenu pm, string prefix, int eff
10741093
if (!AudioMixerController.WillChangeOfEffectTargetCauseFeedback(allGroups, group, effectIndex, ge, identifiedLoop))
10751094
{
10761095
if (showCurrent || effect.sendTarget != ge)
1077-
pm.AddItem(new GUIContent(prefix + "'" + ge.GetDisplayString(effectMap) + "'"), effect.sendTarget == ge, ConnectSendPopupCallback, new ConnectSendContext(effect, ge));
1096+
{
1097+
var sendContext = new ConnectSendContext(group.controller, effect, ge);
1098+
pm.AddItem(new GUIContent(prefix + "'" + ge.GetDisplayString(effectMap) + "'"), effect.sendTarget == ge, ConnectSendPopupCallback, sendContext);
1099+
}
10781100
}
10791101
else
10801102
{
1081-
string baseString = "A connection to '" + AudioMixerController.FixNameForPopupMenu(ge.GetDisplayString(effectMap)) + "' would result in a feedback loop/";
1103+
string baseString = "A connection to '" + ge.GetDisplayString(effectMap) + "' would result in a feedback loop/";
10821104
pm.AddDisabledItem(new GUIContent(baseString + "Loop: "));
10831105
int loopIndex = 1;
10841106
foreach (var s in identifiedLoop)

Editor/Mono/Audio/Mixer/GUI/AudioMixerEffectView.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,6 @@ public void OnGUI(AudioMixerGroupController group)
8686
if (group == null)
8787
return;
8888

89-
var controller = group.controller;
90-
var allGroups = controller.GetAllAudioGroupsSlow();
91-
var effectMap = new Dictionary<AudioMixerEffectController, AudioMixerGroupController>();
92-
foreach (var g in allGroups)
93-
foreach (var e in g.effects)
94-
effectMap[e] = g;
95-
9689
Rect totalRect = EditorGUILayout.BeginVertical();
9790

9891
if (EditorApplication.isPlaying)
@@ -109,6 +102,8 @@ public void OnGUI(AudioMixerGroupController group)
109102

110103
using (new EditorGUI.DisabledScope(!AudioMixerController.EditingTargetSnapshot()))
111104
{
105+
var controller = group.controller;
106+
112107
if (group != m_PrevGroup)
113108
{
114109
m_PrevGroup = group;
@@ -117,6 +112,9 @@ public void OnGUI(AudioMixerGroupController group)
117112
}
118113

119114
// Do Effect modules
115+
var allGroups = controller.GetAllAudioGroupsSlow();
116+
var effectMap = AudioMixerGroupController.GetEffectMapSlow(allGroups);
117+
120118
DoInitialModule(group, controller, allGroups);
121119
for (int effectIndex = 0; effectIndex < group.effects.Length; effectIndex++)
122120
{
@@ -283,8 +281,10 @@ public void DoEffectGUI(int effectIndex, AudioMixerGroupController group, List<A
283281

284282
if (effect.sendTarget != null)
285283
{
286-
float wetLevel = effect.GetValueForMixLevel(controller, controller.TargetSnapshot);
287-
if (AudioMixerEffectGUI.Slider(Texts.sendLevel, ref wetLevel, 1.0f, 1.0f, Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioGroupParameterPath(group, group.GetGUIDForSend())))
284+
var wetLevel = effect.GetValueForMixLevel(controller, controller.TargetSnapshot);
285+
var sendGuid = effect.GetGUIDForMixLevel();
286+
287+
if (AudioMixerEffectGUI.Slider(Texts.sendLevel, ref wetLevel, 1.0f, 1.0f, Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioEffectParameterPath(group, effect, sendGuid)))
288288
{
289289
Undo.RecordObject(controller.TargetSnapshot, "Change Send Level");
290290
effect.SetValueForMixLevel(controller, controller.TargetSnapshot, wetLevel);
@@ -413,7 +413,6 @@ private static void ShowEffectContextMenu(AudioMixerGroupController group, Audio
413413
menu.AddSeparator("");
414414
menu.AddItem(EditorGUIUtility.TrTextContent("Remove this effect"), false, delegate()
415415
{
416-
controller.ClearSendConnectionsTo(effect);
417416
controller.RemoveEffect(effect, group);
418417
AudioMixerUtility.RepaintAudioMixerAndInspectors();
419418
});
@@ -425,7 +424,8 @@ private static void ShowEffectContextMenu(AudioMixerGroupController group, Audio
425424
private static void ShowBusPopupMenu(int effectIndex, AudioMixerGroupController group, List<AudioMixerGroupController> allGroups, Dictionary<AudioMixerEffectController, AudioMixerGroupController> effectMap, AudioMixerEffectController effect, Rect buttonRect)
426425
{
427426
GenericMenu pm = new GenericMenu();
428-
pm.AddItem(EditorGUIUtility.TrTextContent("None"), false, AudioMixerChannelStripView.ConnectSendPopupCallback, new AudioMixerChannelStripView.ConnectSendContext(effect, null));
427+
var sendContext = new AudioMixerChannelStripView.ConnectSendContext(group.controller, effect, null);
428+
pm.AddItem(EditorGUIUtility.TrTextContent("None"), false, AudioMixerChannelStripView.ConnectSendPopupCallback, sendContext);
429429
pm.AddSeparator("");
430430
AudioMixerChannelStripView.AddMenuItemsForReturns(pm, string.Empty, effectIndex, group, allGroups, effectMap, effect, true);
431431

Editor/Mono/Audio/Mixer/GUI/AudioMixerGroupTreeView.cs

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,12 @@ public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewIt
6666
m_owner.Controller.ReparentSelection(parentGroup, insertionIndex, draggedGroups);
6767
m_owner.ReloadTree();
6868
m_owner.Controller.OnSubAssetChanged();
69-
m_TreeView.SetSelection(draggedIDs.ToArray(), true); // Ensure dropped item(s) are selected and revealed (fixes selection if click dragging a single item that is not selected when drag was started)
69+
m_TreeView.SetSelection(draggedIDs.ToArray(), true); // Ensure dropped item(s) are selected and revealed (fixes selection if click dragging a single item that is not selected when drag was started)
7070
}
71+
7172
return validDrag ? DragAndDropVisualMode.Move : DragAndDropVisualMode.Rejected;
7273
}
74+
7375
return DragAndDropVisualMode.None;
7476
}
7577

@@ -82,6 +84,7 @@ bool ValidDrag(TreeViewItem parent, List<int> draggedInstanceIDs)
8284
return false;
8385
currentParent = currentParent.parent;
8486
}
87+
8588
return true;
8689
}
8790
}
@@ -107,6 +110,7 @@ private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem p
107110
children.Add(node);
108111
AddNodesRecursively(group.children[i], node, depth + 1);
109112
}
113+
110114
parent.children = children;
111115
}
112116

@@ -174,6 +178,7 @@ void OpenGroupContextMenu(AudioMixerTreeViewNode audioNode, bool visible)
174178
{
175179
menu.AddItem(new GUIContent(visible ? "Hide group" : "Show Group"), false, () => NodeWasToggled(audioNode, !visible));
176180
}
181+
177182
menu.AddSeparator(string.Empty);
178183

179184
AudioMixerGroupController[] groups;
@@ -235,9 +240,7 @@ protected override Texture GetIconForItem(TreeViewItem node)
235240
return null;
236241
}
237242

238-
protected override void SyncFakeItem()
239-
{
240-
}
243+
protected override void SyncFakeItem() {}
241244

242245
protected override void RenameEnded()
243246
{
@@ -260,7 +263,6 @@ protected override void RenameEnded()
260263
}
261264
}
262265

263-
264266
// TreeView
265267

266268
internal class AudioMixerGroupPopupContext
@@ -296,6 +298,7 @@ class Styles
296298
public GUIContent addButton = EditorGUIUtility.TrIconContent("CreateAddNew", "Add child group");
297299
public Texture2D audioMixerGroupIcon = EditorGUIUtility.FindTexture(typeof(UnityEngine.Audio.AudioMixerGroup));
298300
}
301+
299302
static Styles s_Styles;
300303

301304
public AudioMixerGroupTreeView(AudioMixerWindow mixerWindow, TreeViewState treeState)
@@ -319,9 +322,15 @@ public AudioMixerGroupTreeView(AudioMixerWindow mixerWindow, TreeViewState treeS
319322
m_AudioGroupTree.ReloadData();
320323
}
321324

322-
public AudioMixerController Controller { get { return m_Controller; } }
325+
public AudioMixerController Controller
326+
{
327+
get { return m_Controller; }
328+
}
323329

324-
public AudioMixerGroupController ScrollToItem { get { return m_ScrollToItem; } }
330+
public AudioMixerGroupController ScrollToItem
331+
{
332+
get { return m_ScrollToItem; }
333+
}
325334

326335
public void UseScrollView(bool useScrollView)
327336
{
@@ -371,7 +380,7 @@ public void AddAudioMixerGroup(AudioMixerGroupController parent)
371380
m_Controller.AddChildToParent(newGroup, parent);
372381
m_Controller.AddGroupToCurrentView(newGroup);
373382

374-
Selection.objects = new[] {newGroup};
383+
Selection.objects = new[] { newGroup };
375384
m_Controller.OnUnitySelectionChanged();
376385
m_AudioGroupTree.SetSelection(new int[] { newGroup.GetInstanceID() }, true);
377386
ReloadTree();
@@ -384,7 +393,7 @@ static string PluralIfNeeded(int count)
384393
return count > 1 ? "s" : "";
385394
}
386395

387-
public void DeleteGroups(List<AudioMixerGroupController> groups, bool recordUndo)
396+
public void DeleteGroups(List<AudioMixerGroupController> groups)
388397
{
389398
foreach (AudioMixerGroupController group in groups)
390399
{
@@ -396,9 +405,6 @@ public void DeleteGroups(List<AudioMixerGroupController> groups, bool recordUndo
396405
}
397406
}
398407

399-
if (recordUndo)
400-
Undo.RegisterCompleteObjectUndo(m_Controller, "Delete Group" + PluralIfNeeded(groups.Count));
401-
402408
m_Controller.DeleteGroups(groups.ToArray());
403409
ReloadTree();
404410
m_Controller.OnSubAssetChanged();
@@ -426,7 +432,7 @@ public void DuplicateGroups(List<AudioMixerGroupController> groups, bool recordU
426432
void DeleteGroupsPopupCallback(object obj)
427433
{
428434
var audioMixerGroupTreeView = (AudioMixerGroupTreeView)obj;
429-
audioMixerGroupTreeView.DeleteGroups(GetGroupSelectionWithoutMasterGroup(), true);
435+
audioMixerGroupTreeView.DeleteGroups(GetGroupSelectionWithoutMasterGroup());
430436
}
431437

432438
void DuplicateGroupPopupCallback(object obj)
@@ -438,7 +444,7 @@ void DuplicateGroupPopupCallback(object obj)
438444
void RenameGroupCallback(object obj)
439445
{
440446
var item = (TreeViewItem)obj;
441-
m_AudioGroupTree.SetSelection(new int[] {item.id}, false);
447+
m_AudioGroupTree.SetSelection(new int[] { item.id }, false);
442448
m_AudioGroupTree.BeginNameEditing(0f);
443449
}
444450

@@ -489,7 +495,7 @@ void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled)
489495
Undo.RecordObject(m_Controller, "Changed Group Visibility");
490496
var treeSelection = GetAudioMixerGroupsFromNodeIDs(m_AudioGroupTree.GetSelection());
491497
if (!treeSelection.Contains(node.group))
492-
treeSelection = new List<AudioMixerGroupController> {node.group};
498+
treeSelection = new List<AudioMixerGroupController> { node.group };
493499
var newSelection = new List<GUID>();
494500
var allGroups = m_Controller.GetAllAudioGroupsSlow();
495501
foreach (var g in allGroups)
@@ -502,6 +508,7 @@ void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled)
502508
if (add)
503509
newSelection.Add(g.groupID);
504510
}
511+
505512
m_Controller.SetCurrentViewVisibility(newSelection.ToArray());
506513
}
507514

@@ -518,6 +525,7 @@ List<AudioMixerGroupController> GetAudioMixerGroupsFromNodeIDs(int[] instanceIDs
518525
newSelectedGroups.Add(mixerNode.group);
519526
}
520527
}
528+
521529
return newSelectedGroups;
522530
}
523531

@@ -597,8 +605,8 @@ void HandleCommandEvents(int treeViewKeyboardControlID)
597605
Event.current.Use();
598606
if (execute)
599607
{
600-
DeleteGroups(GetGroupSelectionWithoutMasterGroup(), true);
601-
GUIUtility.ExitGUI(); // Cached groups might have been deleted to so early out of event
608+
DeleteGroups(GetGroupSelectionWithoutMasterGroup());
609+
GUIUtility.ExitGUI(); // Cached groups might have been deleted to so early out of event
602610
}
603611
}
604612
else if (Event.current.commandName == EventCommandNames.Duplicate)

0 commit comments

Comments
 (0)