Skip to content

Commit 90438f1

Browse files
author
Unity Technologies
committed
Unity 2019.3.0b7 C# reference source code
1 parent 487226b commit 90438f1

35 files changed

+615
-314
lines changed

Editor/Mono/AssetPipeline/AssetImporter.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public Dictionary<SourceAssetIdentifier, Object> GetExternalObjectMap()
139139
}
140140

141141
[FreeFunction("AssetImporterBindings::RegisterImporter")]
142-
extern internal static void RegisterImporter(Type importer, int importerVersion, int queuePos, string fileExt, bool supportsImportDependencyHinting, bool autoSelect);
142+
extern internal static void RegisterImporter(Type importer, int importerVersion, int queuePos, string fileExt, bool supportsImportDependencyHinting, bool autoSelect, bool allowCaching);
143143

144144
[FreeFunction("AssetImporterBindings::SupportsRemappedAssetType", HasExplicitThis = true, IsThreadSafe = true)]
145145
public extern bool SupportsRemappedAssetType(Type type);

Editor/Mono/EditorGUI.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,6 +1654,13 @@ internal static string TextFieldInternal(Rect position, GUIContent label, string
16541654
return text;
16551655
}
16561656

1657+
internal static string TextFieldInternal(int id, Rect position, GUIContent label, string text, GUIStyle style)
1658+
{
1659+
bool dummy;
1660+
text = DoTextField(s_RecycledEditor, id, PrefixLabel(position, id, label), text, style, null, out dummy, false, false, false);
1661+
return text;
1662+
}
1663+
16571664
internal static string ToolbarSearchField(Rect position, string text, bool showWithPopupArrow)
16581665
{
16591666
int id = GUIUtility.GetControlID(s_SearchFieldHash, FocusType.Keyboard, position);

Editor/Mono/EditorSettings.bindings.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,19 @@ public enum LineEndingsMode
4040
Windows = 2
4141
}
4242

43+
public enum AssetPipelineMode
44+
{
45+
Version1 = 0,
46+
Version2 = 1
47+
}
48+
49+
public enum CacheServerMode
50+
{
51+
AsPreferences = 0,
52+
Enabled = 1,
53+
Disabled = 2
54+
}
55+
4356
[Flags]
4457
public enum EnterPlayModeOptions
4558
{
@@ -237,5 +250,23 @@ internal static extern string Internal_ProjectGenerationUserExtensions
237250

238251
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
239252
public static extern EnterPlayModeOptions enterPlayModeOptions { get; set; }
253+
254+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
255+
public static extern AssetPipelineMode assetPipelineMode { get; set; }
256+
257+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
258+
public static extern CacheServerMode cacheServerMode { get; set; }
259+
260+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
261+
public static extern string cacheServerEndpoint { get; set; }
262+
263+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
264+
public static extern string cacheServerNamespacePrefix { get; set; }
265+
266+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
267+
public static extern bool cacheServerEnableDownload { get; set; }
268+
269+
[StaticAccessor("GetEditorSettings()", StaticAccessorType.Dot)]
270+
public static extern bool cacheServerEnableUpload { get; set; }
240271
}
241272
}

Editor/Mono/GUI/ObjectField.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -448,12 +448,12 @@ internal class ObjectPreviewPopup : PopupWindowContent
448448
{
449449
readonly Editor m_Editor;
450450
readonly GUIContent m_ObjectName;
451-
const float kToolbarHeight = 17f;
451+
const float kToolbarHeight = 22f;
452452

453453
internal class Styles
454454
{
455455
public readonly GUIStyle toolbar = "preToolbar";
456-
public readonly GUIStyle toolbarText = "preToolbar2";
456+
public readonly GUIStyle toolbarText = "ToolbarBoldLabel";
457457
public GUIStyle background = "preBackground";
458458
}
459459
Styles s_Styles;
@@ -486,7 +486,6 @@ public override void OnGUI(Rect rect)
486486
if (s_Styles == null)
487487
s_Styles = new Styles();
488488

489-
490489
// Toolbar
491490
GUILayout.BeginArea(new Rect(rect.x, rect.y, rect.width, kToolbarHeight), s_Styles.toolbar);
492491
EditorGUILayout.BeginHorizontal();
@@ -495,7 +494,7 @@ public override void OnGUI(Rect rect)
495494
EditorGUILayout.EndHorizontal();
496495
GUILayout.EndArea();
497496

498-
const float kMaxSettingsWidth = 140f;
497+
const float kMaxSettingsWidth = 240f;
499498
GUI.Label(new Rect(rect.x + 5f, rect.y, rect.width - kMaxSettingsWidth, kToolbarHeight), m_ObjectName, s_Styles.toolbarText);
500499

501500
// Object preview
@@ -505,7 +504,7 @@ public override void OnGUI(Rect rect)
505504

506505
public override Vector2 GetWindowSize()
507506
{
508-
return new Vector2(300f, 300f + kToolbarHeight);
507+
return new Vector2(400f, 300f + kToolbarHeight);
509508
}
510509
}
511510
}

Editor/Mono/Inspector/AssemblyDefinitionImporterInspector.cs

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

5-
using UnityEngine;
5+
using System;
66
using System.Collections.Generic;
7+
using System.IO;
78
using System.Linq;
8-
using UnityEditorInternal;
9-
using UnityEditor.Scripting.ScriptCompilation;
10-
using UnityEditor.Experimental.AssetImporters;
119
using UnityEditor.Compilation;
12-
using System;
13-
using System.IO;
10+
using UnityEditor.Experimental.AssetImporters;
11+
using UnityEditor.Scripting.ScriptCompilation;
12+
using UnityEditorInternal;
13+
using UnityEngine;
1414
using AssemblyFlags = UnityEditor.Scripting.ScriptCompilation.AssemblyFlags;
1515
using Object = UnityEngine.Object;
1616

@@ -41,8 +41,41 @@ internal class Styles
4141
public static readonly GUIContent loadError = EditorGUIUtility.TrTextContent("Load error");
4242
public static readonly GUIContent expressionOutcome = EditorGUIUtility.TrTextContent("Expression outcome", "Shows the mathematical equation that your Expression represents.");
4343
public static readonly GUIContent noEngineReferences = EditorGUIUtility.TrTextContent("No Engine References", "When enabled, references to UnityEngine/UnityEditor will not be added when compiling this assembly.");
44-
public static readonly GUIContent validDefineConstraint = new GUIContent(EditorGUIUtility.FindTexture("TestPassed"), L10n.Tr("Define constraint is valid."));
45-
public static readonly GUIContent invalidDefineConstraint = new GUIContent(EditorGUIUtility.FindTexture("TestFailed"), L10n.Tr("Define constraint is invalid."));
44+
45+
public const int kValidityIconHeight = 16;
46+
public const int kValidityIconWidth = 16;
47+
static readonly Texture2D kValidDefineConstraint = EditorGUIUtility.FindTexture("Valid");
48+
static readonly Texture2D kValidDefineConstraintHighDpi = EditorGUIUtility.FindTexture("Valid@2x");
49+
static readonly Texture2D kInvalidDefineConstraint = EditorGUIUtility.FindTexture("Invalid");
50+
static readonly Texture2D kInvalidDefineConstraintHighDpi = EditorGUIUtility.FindTexture("Invalid@2x");
51+
52+
public static Texture2D validDefineConstraint => EditorGUIUtility.pixelsPerPoint > 1 ? kValidDefineConstraintHighDpi : kValidDefineConstraint;
53+
public static Texture2D invalidDefineConstraint => EditorGUIUtility.pixelsPerPoint > 1 ? kInvalidDefineConstraintHighDpi : kInvalidDefineConstraint;
54+
55+
static string kCompatibleTextTitle = L10n.Tr("Define constraints are compatible.");
56+
static string kIncompatibleTextTitle = L10n.Tr("One or more define constraints are invalid or incompatible.");
57+
58+
public static string GetTitleTooltipFromDefineConstraintCompatibility(bool compatible)
59+
{
60+
return compatible ? kCompatibleTextTitle : kIncompatibleTextTitle;
61+
}
62+
63+
static string kCompatibleTextIndividual = L10n.Tr("Define constraint is compatible.");
64+
static string kIncompatibleTextIndividual = L10n.Tr("Define constraint is incompatible.");
65+
static string kInvalidTextIndividual = L10n.Tr("Define constraint is invalid.");
66+
67+
public static string GetIndividualTooltipFromDefineConstraintStatus(DefineConstraintsHelper.DefineConstraintStatus status)
68+
{
69+
switch (status)
70+
{
71+
case DefineConstraintsHelper.DefineConstraintStatus.Compatible:
72+
return Styles.kCompatibleTextIndividual;
73+
case DefineConstraintsHelper.DefineConstraintStatus.Incompatible:
74+
return Styles.kIncompatibleTextIndividual;
75+
default:
76+
return Styles.kInvalidTextIndividual;
77+
}
78+
}
4679
}
4780

4881
GUIStyle m_TextStyle;
@@ -119,7 +152,6 @@ class AssemblyDefinitionState : ScriptableObject
119152
SerializedProperty m_PlatformCompatibility;
120153
SerializedProperty m_NoEngineReferences;
121154

122-
string[] m_Defines;
123155
Exception initializeException;
124156

125157
public override bool showImportedObject => false;
@@ -128,8 +160,6 @@ public override void OnEnable()
128160
{
129161
base.OnEnable();
130162
m_AssemblyName = extraDataSerializedObject.FindProperty("assemblyName");
131-
m_Defines = CompilationPipeline.GetDefinesFromAssemblyName(m_AssemblyName.stringValue);
132-
133163
InitializeReorderableLists();
134164
m_SemVersionRanges = new SemVersionRangesFactory();
135165
m_AllowUnsafeCode = extraDataSerializedObject.FindProperty("allowUnsafeCode");
@@ -139,6 +169,21 @@ public override void OnEnable()
139169
m_CompatibleWithAnyPlatform = extraDataSerializedObject.FindProperty("compatibleWithAnyPlatform");
140170
m_PlatformCompatibility = extraDataSerializedObject.FindProperty("platformCompatibility");
141171
m_NoEngineReferences = extraDataSerializedObject.FindProperty("noEngineReferences");
172+
173+
AssemblyReloadEvents.afterAssemblyReload += AfterAssemblyReload;
174+
}
175+
176+
public override void OnDisable()
177+
{
178+
base.OnDisable();
179+
AssemblyReloadEvents.afterAssemblyReload -= AfterAssemblyReload;
180+
}
181+
182+
void AfterAssemblyReload()
183+
{
184+
var selector = (ObjectSelector)WindowLayout.FindEditorWindowOfType(typeof(ObjectSelector));
185+
if (selector != null && selector.hasFocus)
186+
selector.Close();
142187
}
143188

144189
public override void OnInspectorGUI()
@@ -178,33 +223,41 @@ public override void OnInspectorGUI()
178223
EditorGUILayout.EndVertical();
179224
GUILayout.Space(10f);
180225

226+
EditorGUILayout.BeginHorizontal();
181227
GUILayout.Label(Styles.defineConstraints, EditorStyles.boldLabel);
228+
GUILayout.FlexibleSpace();
229+
EditorGUILayout.EndHorizontal();
230+
182231
if (m_DefineConstraints.serializedProperty.arraySize > 0)
183232
{
184-
var defineConstraintsValid = true;
185-
for (var i = 0; i < m_DefineConstraints.serializedProperty.arraySize && defineConstraintsValid; ++i)
233+
var defineConstraintsCompatible = true;
234+
235+
var defines = CompilationPipeline.GetDefinesFromAssemblyName(m_AssemblyName.stringValue);
236+
237+
if (defines != null)
186238
{
187-
var defineConstraint = m_DefineConstraints.serializedProperty.GetArrayElementAtIndex(i).FindPropertyRelative("name").stringValue;
188-
if (!DefineConstraintsHelper.IsDefineConstraintValid(m_Defines, defineConstraint))
239+
for (var i = 0; i < m_DefineConstraints.serializedProperty.arraySize && defineConstraintsCompatible; ++i)
189240
{
190-
defineConstraintsValid = false;
241+
var defineConstraint = m_DefineConstraints.serializedProperty.GetArrayElementAtIndex(i).FindPropertyRelative("name").stringValue;
242+
243+
if (DefineConstraintsHelper.GetDefineConstraintCompatibility(defines, defineConstraint) != DefineConstraintsHelper.DefineConstraintStatus.Compatible)
244+
{
245+
defineConstraintsCompatible = false;
246+
}
191247
}
192-
}
193-
var constraintValidityRect = new Rect(GUILayoutUtility.GetLastRect());
194-
constraintValidityRect.x += constraintValidityRect.width - 23;
195-
if (defineConstraintsValid)
196-
{
197-
constraintValidityRect.width = Styles.validDefineConstraint.image.width;
198-
constraintValidityRect.height = Styles.validDefineConstraint.image.height;
199-
EditorGUI.LabelField(constraintValidityRect, Styles.validDefineConstraint);
200-
}
201-
else
202-
{
203-
constraintValidityRect.width = Styles.invalidDefineConstraint.image.width;
204-
constraintValidityRect.height = Styles.invalidDefineConstraint.image.height;
205-
EditorGUI.LabelField(constraintValidityRect, Styles.invalidDefineConstraint);
248+
249+
var constraintValidityRect = new Rect(GUILayoutUtility.GetLastRect());
250+
constraintValidityRect.x += constraintValidityRect.width - 23;
251+
var image = defineConstraintsCompatible ? Styles.validDefineConstraint : Styles.invalidDefineConstraint;
252+
var tooltip = Styles.GetTitleTooltipFromDefineConstraintCompatibility(defineConstraintsCompatible);
253+
var content = new GUIContent(image, tooltip);
254+
255+
constraintValidityRect.width = Styles.kValidityIconWidth;
256+
constraintValidityRect.height = Styles.kValidityIconHeight;
257+
EditorGUI.LabelField(constraintValidityRect, content);
206258
}
207259
}
260+
208261
m_DefineConstraints.DoLayoutList();
209262

210263
GUILayout.Label(Styles.references, EditorStyles.boldLabel);
@@ -233,7 +286,6 @@ public override void OnInspectorGUI()
233286
}
234287
}
235288

236-
237289
GUILayout.Label(Styles.platforms, EditorStyles.boldLabel);
238290
EditorGUILayout.BeginVertical(GUI.skin.box);
239291

@@ -251,6 +303,7 @@ public override void OnInspectorGUI()
251303
{
252304
InversePlatformCompatibility(state);
253305
}
306+
254307
extraDataSerializedObject.Update();
255308
}
256309
}
@@ -272,6 +325,7 @@ public override void OnInspectorGUI()
272325
{
273326
property = m_PlatformCompatibility.GetArrayElementAtIndex(i);
274327
}
328+
275329
EditorGUILayout.PropertyField(property, new GUIContent(platforms[i].DisplayName));
276330
}
277331

@@ -322,6 +376,7 @@ public override void OnInspectorGUI()
322376
protected override void Apply()
323377
{
324378
base.Apply();
379+
325380
// Do not write back to the asset if no asset can be found.
326381
if (assetTarget != null)
327382
SaveAndUpdateAssemblyDefinitionStates(extraDataTargets.Cast<AssemblyDefinitionState>().ToArray());
@@ -398,8 +453,6 @@ private void DrawDefineConstraintListElement(Rect rect, int index, bool isactive
398453

399454
var textFieldRect = new Rect(rect.x, rect.y + 1, rect.width - ReorderableList.Defaults.dragHandleWidth + 1, rect.height);
400455

401-
var constraintValidityRect = new Rect(rect.width + ReorderableList.Defaults.dragHandleWidth + ReorderableList.Defaults.dragHandleWidth / 2f - Styles.invalidDefineConstraint.image.width / 2f, rect.y , ReorderableList.Defaults.dragHandleWidth, rect.height);
402-
403456
string noValue = L10n.Tr("(Missing)");
404457

405458
var label = string.IsNullOrEmpty(defineConstraint.stringValue) ? noValue : defineConstraint.stringValue;
@@ -408,20 +461,17 @@ private void DrawDefineConstraintListElement(Rect rect, int index, bool isactive
408461
var textFieldValue = EditorGUI.TextField(textFieldRect, mixed ? L10n.Tr("(Multiple Values)") : label);
409462
EditorGUI.showMixedValue = false;
410463

411-
if (m_Defines != null)
464+
var defines = CompilationPipeline.GetDefinesFromAssemblyName(m_AssemblyName.stringValue);
465+
466+
if (defines != null)
412467
{
413-
if (DefineConstraintsHelper.IsDefineConstraintValid(m_Defines, defineConstraint.stringValue))
414-
{
415-
constraintValidityRect.width = Styles.validDefineConstraint.image.width;
416-
constraintValidityRect.height = Styles.validDefineConstraint.image.height;
417-
EditorGUI.LabelField(constraintValidityRect, Styles.validDefineConstraint);
418-
}
419-
else
420-
{
421-
constraintValidityRect.width = Styles.invalidDefineConstraint.image.width;
422-
constraintValidityRect.height = Styles.invalidDefineConstraint.image.height;
423-
EditorGUI.LabelField(constraintValidityRect, Styles.invalidDefineConstraint);
424-
}
468+
var status = DefineConstraintsHelper.GetDefineConstraintCompatibility(defines, defineConstraint.stringValue);
469+
var image = status == DefineConstraintsHelper.DefineConstraintStatus.Compatible ? Styles.validDefineConstraint : Styles.invalidDefineConstraint;
470+
471+
var content = new GUIContent(image, Styles.GetIndividualTooltipFromDefineConstraintStatus(status));
472+
473+
var constraintValidityRect = new Rect(rect.width + ReorderableList.Defaults.dragHandleWidth + ReorderableList.Defaults.dragHandleWidth / 2f - Styles.kValidityIconWidth / 2f + 1, rect.y, Styles.kValidityIconWidth, Styles.kValidityIconHeight);
474+
EditorGUI.LabelField(constraintValidityRect, content);
425475
}
426476

427477
if (!string.IsNullOrEmpty(textFieldValue) && textFieldValue != noValue)
@@ -619,19 +669,10 @@ static void LoadAssemblyDefinitionState(AssemblyDefinitionState state, string pa
619669
{
620670
foreach (var defineConstraint in data.defineConstraints)
621671
{
622-
var symbolName = defineConstraint.StartsWith(DefineConstraintsHelper.Not) ? defineConstraint.Substring(1) : defineConstraint;
623-
if (!SymbolNameRestrictions.IsValid(symbolName))
624-
{
625-
var exception = new AssemblyDefinitionException($"Invalid define constraint {symbolName}", path);
626-
Debug.LogException(exception, asset);
627-
}
628-
else
672+
state.defineConstraints.Add(new DefineConstraint
629673
{
630-
state.defineConstraints.Add(new DefineConstraint
631-
{
632-
name = defineConstraint,
633-
});
634-
}
674+
name = defineConstraint,
675+
});
635676
}
636677
}
637678

@@ -683,6 +724,7 @@ static void LoadAssemblyDefinitionState(AssemblyDefinitionState state, string pa
683724
precompiledReference.path = assembly.Path;
684725
precompiledReference.fileName = AssetPath.GetFileName(assembly.Path);
685726
}
727+
686728
state.precompiledReferences.Add(precompiledReference);
687729
}
688730
catch (AssemblyDefinitionException e)

Editor/Mono/Inspector/EditorElement.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ internal void Reinit(int editorIndex)
119119

120120
m_Header.onGUIHandler = HeaderOnGUI;
121121
m_Footer.onGUIHandler = FooterOnGUI;
122-
m_InspectorElement.editor = editor;
122+
m_InspectorElement.AssignExistingEditor(editor);
123123

124124
name = editorTitle;
125125
m_InspectorElement.name = editorTitle + "Inspector";

0 commit comments

Comments
 (0)