Skip to content

Commit 537b1b4

Browse files
author
Unity Technologies
committed
Unity 2023.1.20f1 C# reference source code
1 parent 4764d77 commit 537b1b4

91 files changed

Lines changed: 301 additions & 143 deletions

File tree

Some content is hidden

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

Editor/Mono/CustomInspectorStubs.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,12 @@ internal static SettingsProvider CreateProjectSettingsProvider()
7272
// as it will load *all* objects at that path and try to create an editor for it.
7373
// NOTE: When the input system package is uninstalled, InputManager.asset will contain serialized MonoBehaviour objects for which
7474
// the C# classes are no longer available. They will thus not load correctly and appear as null entries.
75-
var objects = AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/InputManager.asset");
76-
foreach (var obj in objects)
75+
var obj = AssetDatabase.LoadAssetAtPath<InputManager>("ProjectSettings/InputManager.asset");
76+
if (obj != null && obj.name == "InputManager")
7777
{
78-
if (obj != null && obj.name == "InputManager")
79-
{
80-
var provider = AssetSettingsProvider.CreateProviderFromObject("Project/Input Manager", obj,
81-
SettingsProvider.GetSearchKeywordsFromPath("ProjectSettings/InputManager.asset"));
82-
return provider;
83-
}
78+
var provider = AssetSettingsProvider.CreateProviderFromObject("Project/Input Manager", obj,
79+
SettingsProvider.GetSearchKeywordsFromPath("ProjectSettings/InputManager.asset"));
80+
return provider;
8481
}
8582
return null;
8683
}

Editor/Mono/EditorGUI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3955,7 +3955,7 @@ public static int GetSelectedValueForControl(int controlID, int selected)
39553955
}
39563956
if (instance.m_ControlID == controlID)
39573957
{
3958-
GUI.changed = selected != instance.m_SelectedIndex;
3958+
GUI.changed = showMixedValue || selected != instance.m_SelectedIndex;
39593959
selected = instance.m_SelectedIndex;
39603960
instance = null;
39613961
evt.Use();

Editor/Mono/EditorTextSettings.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ internal class EditorTextSettings : TextSettings
1919
{
2020
private static EditorTextSettings s_DefaultTextSettings;
2121
private static float s_CurrentEditorSharpness;
22+
private static bool s_CurrentEditorSharpnessLoadedOrSet = false;
2223

2324
const string k_Platform =
2425
" - Linux";
@@ -31,10 +32,15 @@ static EditorTextSettings()
3132
internal static void SetCurrentEditorSharpness(float sharpness)
3233
{
3334
s_CurrentEditorSharpness = sharpness;
35+
s_CurrentEditorSharpnessLoadedOrSet = true;
3436
}
3537

3638
internal override float GetEditorTextSharpness()
3739
{
40+
if (!s_CurrentEditorSharpnessLoadedOrSet)
41+
{
42+
SetCurrentEditorSharpness(EditorPrefs.GetFloat($"EditorTextSharpness_{EditorResources.GetFont(FontDef.Style.Normal).name}", 0.0f));
43+
}
3844
return s_CurrentEditorSharpness;
3945
}
4046

Editor/Mono/GUI/MaskFieldGUI.cs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ private class MaskCallbackInfo
3333
// Which view should we send it to.
3434
private readonly GUIView m_SourceView;
3535

36+
// Current drop-down reference
37+
public MaskFieldDropDown m_DropDown;
38+
39+
// validation flag for masks that are changed externally
40+
private bool m_Validate = false;
41+
3642
public MaskCallbackInfo(int controlID)
3743
{
3844
m_ControlID = controlID;
@@ -77,6 +83,31 @@ internal void SetMaskValueDelegate(object userData, string[] options, int select
7783
if (m_SourceView)
7884
m_SourceView.SendEvent(EditorGUIUtility.CommandEvent(kMaskMenuChangedMessage));
7985
}
86+
87+
public void UpdateFlagChanges(int mask, int[] optionMaskValues)
88+
{
89+
var evt = Event.current;
90+
91+
if (evt.type == EventType.ExecuteCommand)
92+
{
93+
m_Validate = true;
94+
}
95+
// This code is responsible for verifying whether the incoming mask value differs from the one that is currently selected in the dropdown menu.
96+
// When these values do not match, it serves as confirmation that the incoming value has been modified.
97+
// Subsequently, we proceed to update the dropdown menu to reflect these changes.
98+
else if (evt.type == EventType.Repaint && m_Validate)
99+
{
100+
if (m_DropDown == null)
101+
{
102+
return;
103+
}
104+
105+
if (mask != m_NewMask)
106+
m_DropDown.UpdateMaskValues(mask, optionMaskValues);
107+
108+
m_Validate = false;
109+
}
110+
}
80111
}
81112

82113
/// Make a field for a generic mask.
@@ -117,6 +148,10 @@ internal static int DoMaskField(Rect position, int controlID, int mask, string[]
117148

118149
GetMenuOptions(mask, flagNames, flagValues, out var buttonText, out var buttonTextMixed, out var optionNames, out var optionMaskValues, out _, enumType);
119150

151+
// This checks and update flags changes that are modified out of dropdown menu
152+
if (MaskCallbackInfo.m_Instance != null)
153+
MaskCallbackInfo.m_Instance.UpdateFlagChanges(mask, optionMaskValues);
154+
120155
Event evt = Event.current;
121156
if (evt.type == EventType.Repaint)
122157
{
@@ -126,7 +161,8 @@ internal static int DoMaskField(Rect position, int controlID, int mask, string[]
126161
else if ((evt.type == EventType.MouseDown && position.Contains(evt.mousePosition)) || evt.MainActionKeyForControl(controlID))
127162
{
128163
MaskCallbackInfo.m_Instance = new MaskCallbackInfo(controlID);
129-
PopupWindowWithoutFocus.Show(position, new MaskFieldDropDown(optionNames, flagValues, optionMaskValues, mask, MaskCallbackInfo.m_Instance.SetMaskValueDelegate));
164+
MaskCallbackInfo.m_Instance.m_DropDown = new MaskFieldDropDown(optionNames, flagValues, optionMaskValues, mask, MaskCallbackInfo.m_Instance.SetMaskValueDelegate);
165+
PopupWindowWithoutFocus.Show(position, MaskCallbackInfo.m_Instance.m_DropDown);
130166
}
131167

132168
return mask;

Editor/Mono/ImportSettings/SpeedTreeImporterInspector.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,21 @@ protected override bool OnApplyRevertGUI()
9797
{
9898
bool applied = base.OnApplyRevertGUI();
9999

100+
bool hasModified = HasModified();
101+
if (tabs == null) // Hitting apply, we lose the tabs object within base.OnApplyRevertGUI()
102+
{
103+
if(hasModified)
104+
Apply();
105+
return applied;
106+
}
107+
100108
bool doMatsHaveDifferentShaders = (tabs[0] as SpeedTreeImporterModelEditor).doMaterialsHaveDifferentShader;
101109

102110
if (HasRemappedMaterials() || doMatsHaveDifferentShaders)
103111
{
104112
// Force material upgrade when a custom render pipeline is active so that render pipeline-specific material
105113
// modifications may be applied.
106114
bool upgrade = upgradeMaterials || (UnityEngine.Rendering.GraphicsSettings.currentRenderPipeline != null);
107-
bool hasModified = HasModified();
108115
if (GUILayout.Button(GetGenButtonText(hasModified, upgrade)))
109116
{
110117
// Apply the changes and generate the materials before importing so that asset previews are up-to-date.

Editor/Mono/Inspector/Editor.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,8 +1364,7 @@ internal bool CanBeExpandedViaAFoldout()
13641364

13651365
if (m_SerializedObject == null)
13661366
{
1367-
m_SerializedObject = new SerializedObject(targets, m_Context);
1368-
m_SerializedObject.inspectorMode = m_InspectorMode;
1367+
CreateSerializedObject();
13691368
}
13701369
else
13711370
m_SerializedObject.Update();
@@ -1383,8 +1382,7 @@ internal bool CanBeExpandedViaAFoldoutWithoutUpdate()
13831382

13841383
if (m_SerializedObject == null)
13851384
{
1386-
m_SerializedObject = new SerializedObject(targets, m_Context);
1387-
m_SerializedObject.inspectorMode = m_InspectorMode;
1385+
CreateSerializedObject();
13881386
}
13891387
SerializedProperty property = m_SerializedObject.GetIterator();
13901388

Editor/Mono/Inspector/MaskFieldDropdown.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ public MaskFieldDropDown(string[] optionNames, int[] flagValues, int[] optionMas
8787
m_AllLayersMask |= val;
8888
}
8989

90+
public void UpdateMaskValues(int mask, int[] optionMaskValues)
91+
{
92+
m_OptionMaskValues = (int[])optionMaskValues.Clone();
93+
m_SelectionMaskValues = new int[] { mask };
94+
}
95+
9096
public override Vector2 GetWindowSize()
9197
{
9298
var rowCount = m_OptionNames[0] == "Nothing" ? m_OptionNames.Length : m_OptionNames.Length + 2;
@@ -127,7 +133,9 @@ void DrawGUIForArrays()
127133
bool toggleVal = (m_SelectionMaskValues[0] & m_OptionMaskValues[i]) == m_OptionMaskValues[i];
128134
if ((m_SelectionMaskValues[0] != 0 && i == 0) || m_SelectionMaskValues[0] != -1 && i == 1)
129135
toggleVal = false;
130-
136+
137+
if((m_SelectionMaskValues[0] == m_AllLayersMask) && i == 1)
138+
toggleVal = true;
131139

132140
var guiRect = EditorGUILayout.GetControlRect(false, EditorGUI.kSingleLineHeight);
133141
guiRect.width = GetWindowSize().x;

Editor/Mono/Inspector/MaterialEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3080,6 +3080,7 @@ internal static void AddAdditionalMaterialMenuItems(GenericMenu menu)
30803080
menu.AddItem(new GUIContent("Create Variant for Renderer"), false, () => {
30813081

30823082
var directory = "Assets/Materials";
3083+
Directory.CreateDirectory(directory);
30833084
var assetPath = AssetDatabase.GetAssetPath(material);
30843085
var assetName = Path.GetFileNameWithoutExtension(assetPath) + " Variant";
30853086
var package = PackageManager.PackageInfo.FindForAssetPath(assetPath);
@@ -3088,7 +3089,6 @@ internal static void AddAdditionalMaterialMenuItems(GenericMenu menu)
30883089

30893090
var path = AssetDatabase.GenerateUniqueAssetPath(Path.Combine(directory, assetName + ".mat"));
30903091
var variant = new Material(material) { name = assetName, parent = material };
3091-
Directory.CreateDirectory(directory);
30923092
AssetDatabase.CreateAsset(variant, path);
30933093

30943094
foreach (var renderer in renderers)

Editor/Mono/PreferencesWindow/PreferencesSettingsProviders.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,6 @@ private void WritePreferences()
11131113
EditorPrefs.SetBool("Editor.kEnableCompilerMessagesLocalization", m_EnableCompilerMessagesLocalization);
11141114

11151115
EditorPrefs.SetFloat($"EditorTextSharpness_{EditorResources.GetFont(FontDef.Style.Normal).name}", m_EditorTextSharpness);
1116-
EditorTextSettings.SetCurrentEditorSharpness(m_EditorTextSharpness);
11171116
EditorApplication.RequestRepaintAllTexts();
11181117

11191118
EditorPrefs.SetBool("AllowAlphaNumericHierarchy", m_AllowAlphaNumericHierarchy);
@@ -1205,6 +1204,8 @@ private void ReadPreferences()
12051204
m_SelectedLanguage = EditorPrefs.GetString("Editor.kEditorLocale", LocalizationDatabase.GetDefaultEditorLanguage().ToString());
12061205
m_EnableCompilerMessagesLocalization = EditorPrefs.GetBool("Editor.kEnableCompilerMessagesLocalization", false);
12071206
m_EditorTextSharpness = EditorPrefs.GetFloat($"EditorTextSharpness_{EditorResources.GetFont(FontDef.Style.Normal).name}", 0.0f);
1207+
EditorTextSettings.SetCurrentEditorSharpness(m_EditorTextSharpness);
1208+
12081209
m_AllowAlphaNumericHierarchy = EditorPrefs.GetBool("AllowAlphaNumericHierarchy", false);
12091210
m_DefaultPrefabModeFromHierarchy = GetDefaultPrefabModeForHierarchy();
12101211
m_ProgressDialogDelay = EditorPrefs.GetFloat("EditorBusyProgressDialogDelay", 3.0f);

Editor/Mono/UIElements/Controls/ColorField.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
namespace UnityEditor.UIElements
1010
{
1111
/// <summary>
12-
/// Makes a field for selecting a color.
12+
/// Makes a field for selecting a color. For more information, refer to [[wiki:UIE-uxml-element-ColorField|UXML element ColorField]].
1313
/// </summary>
1414
public class ColorField : BaseField<Color>
1515
{

0 commit comments

Comments
 (0)