Skip to content

Commit 37afe6d

Browse files
author
Unity Technologies
committed
Unity 2023.3.0a15 C# reference source code
1 parent 724ff72 commit 37afe6d

File tree

337 files changed

+3774
-1807
lines changed

Some content is hidden

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

337 files changed

+3774
-1807
lines changed

Editor/Mono/AssemblyHelper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,12 @@ static public bool IsUnityEngineModule(Assembly assembly)
3939
public static string[] GetDefaultAssemblySearchPaths()
4040
{
4141
// Add the path to all available precompiled assemblies
42-
var group = EditorUserBuildSettings.activeBuildTargetGroup;
4342
var target = EditorUserBuildSettings.activeBuildTarget;
4443
var precompiledAssemblyPaths = InternalEditorUtility.GetPrecompiledAssemblyPaths();
4544

4645
HashSet<string> searchPaths = new HashSet<string>(precompiledAssemblyPaths);
4746

48-
var precompiledAssemblies = InternalEditorUtility.GetUnityAssemblies(true, group, target);
47+
var precompiledAssemblies = InternalEditorUtility.GetUnityAssemblies(true, target);
4948
foreach (var asm in precompiledAssemblies)
5049
searchPaths.Add(Path.GetDirectoryName(asm.Path));
5150

Editor/Mono/Audio/UIElements/AudioContainerElementClipField.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
using System;
66
using UnityEditor.UIElements;
77
using UnityEngine;
8-
using UnityEngine.Scripting;
98
using UnityEngine.UIElements;
109

1110
namespace UnityEditor.Audio.UIElements;
1211

1312
class AudioContainerElementClipField : ObjectField
1413
{
15-
[Preserve]
16-
public new class UxmlFactory : UxmlFactory<AudioContainerElementClipField, UxmlTraits> { }
14+
[Serializable]
15+
public new class UxmlSerializedData : ObjectField.UxmlSerializedData
16+
{
17+
public override object CreateInstance() => new AudioContainerElementClipField();
18+
}
1719

18-
[Preserve]
19-
public new class UxmlTraits : ObjectField.UxmlTraits { }
2020
public int AssetElementInstanceID { get; set; }
2121
public double Progress
2222
{

Editor/Mono/Audio/UIElements/AudioLevelMeter.cs

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

5+
using System;
56
using UnityEngine;
67
using UnityEngine.UIElements;
78
using Color = UnityEngine.Color;
@@ -10,9 +11,11 @@ namespace UnityEditor.Audio.UIElements
1011
{
1112
internal class AudioLevelMeter : VisualElement
1213
{
13-
public new class UxmlFactory : UxmlFactory<AudioLevelMeter, UxmlTraits> { }
14-
15-
public new class UxmlTraits : VisualElement.UxmlTraits { }
14+
[Serializable]
15+
internal new class UxmlSerializedData : VisualElement.UxmlSerializedData
16+
{
17+
public override object CreateInstance() => new AudioLevelMeter();
18+
}
1619

1720
private float m_Value = -80.0f; // Value of the meter in dBFS.
1821

Editor/Mono/Audio/UIElements/AudioRandomRangeSliderTracker.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44

55
using System;
66
using UnityEngine;
7-
using UnityEngine.Scripting;
87
using UnityEngine.UIElements;
98

109
namespace UnityEditor.Audio.UIElements;
1110

1211
class AudioRandomRangeSliderTracker : VisualElement
1312
{
14-
[Preserve]
15-
public new class UxmlFactory : UxmlFactory<AudioRandomRangeSliderTracker, UxmlTraits> { }
16-
17-
[Preserve]
18-
public new class UxmlTraits : VisualElement.UxmlTraits { }
13+
[Serializable]
14+
public new class UxmlSerializedData : VisualElement.UxmlSerializedData
15+
{
16+
public override object CreateInstance() => new AudioRandomRangeSliderTracker();
17+
}
1918

2019
Slider m_ParentSlider;
2120
float m_PreviousWidth;

Editor/Mono/Audio/UIElements/Tickmarks.cs

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

5+
using System;
56
using UnityEngine;
67
using UnityEngine.UIElements;
78
using Color = UnityEngine.Color;
@@ -42,9 +43,11 @@ private struct MiniScale : Scale
4243
public float[] LabelOffsets() { return new float[] { -6, -6, -6, -6, -3.5f }; }
4344
}
4445

45-
public new class UxmlFactory : UxmlFactory<Tickmarks, UxmlTraits> { }
46-
47-
public new class UxmlTraits : VisualElement.UxmlTraits { }
46+
[Serializable]
47+
public new class UxmlSerializedData : VisualElement.UxmlSerializedData
48+
{
49+
public override object CreateInstance() => new Tickmarks();
50+
}
4851

4952
public Tickmarks() : base()
5053
{

Editor/Mono/BaseBuildTarget.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ namespace UnityEditor;
1010
internal abstract class BaseBuildTarget : IBuildTarget
1111
{
1212
public virtual string DisplayName => TargetName;
13+
14+
// linux is the default, no need to explicitly specify it
15+
public const string kRootSystemTypeWin = "win32";
16+
public const string kRootSystemTypeMac = "macos";
17+
public virtual string RootSystemType => "linux";
18+
1319
public abstract RuntimePlatform RuntimePlatform { get; }
1420
public abstract string TargetName { get; }
1521
public abstract int GetLegacyId { get; }
@@ -20,6 +26,7 @@ internal abstract class BaseBuildTarget : IBuildTarget
2026
public virtual IIconPlatformProperties IconPlatformProperties => Properties as IIconPlatformProperties;
2127
public virtual IUIPlatformProperties UIPlatformProperties => Properties as IUIPlatformProperties;
2228
public virtual IAudioPlatformProperties AudioPlatformProperties => Properties as IAudioPlatformProperties;
29+
public virtual IVRPlatformProperties VRPlatformProperties => Properties as IVRPlatformProperties;
2330

2431
protected virtual IPlatformProperties Properties => null;
2532

Editor/Mono/BuildPipeline.bindings.cs

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -622,11 +622,12 @@ public static AssetBundleManifest BuildAssetBundles(BuildAssetBundlesParameters
622622
[FreeFunction("BuildPlayerLicenseCheck", IsThreadSafe = true)]
623623
internal static extern bool LicenseCheck(BuildTarget target);
624624

625+
// TODO: remove, superseded by IsBuildPlatformSupported()
625626
[FreeFunction]
626627
public static extern bool IsBuildTargetSupported(BuildTargetGroup buildTargetGroup, BuildTarget target);
627628

628629
[FreeFunction]
629-
internal static extern string GetBuildTargetAdvancedLicenseName(BuildTarget target);
630+
internal static extern bool IsBuildPlatformSupported(BuildTarget target);
630631

631632
public static string GetPlaybackEngineDirectory(BuildTarget target, BuildOptions options)
632633
{
@@ -647,19 +648,33 @@ public static string GetPlaybackEngineDirectory(BuildTargetGroup buildTargetGrou
647648
[FreeFunction(IsThreadSafe = true)]
648649
public static extern string GetPlaybackEngineDirectory(BuildTargetGroup buildTargetGroup, BuildTarget target, BuildOptions options, bool assertUnsupportedPlatforms);
649650

650-
[FreeFunction(IsThreadSafe = true)]
651-
internal static extern string GetPlaybackEngineExtensionDirectory(BuildTargetGroup buildTargetGroup, BuildTarget target, BuildOptions options);
652-
653-
internal static extern void SetPlaybackEngineDirectory(BuildTargetGroup targetGroup, BuildTarget target, BuildOptions options, string playbackEngineDirectory);
654-
655-
[FreeFunction(IsThreadSafe = true)]
656-
internal static extern string GetBuildToolsDirectory(BuildTarget target);
651+
internal static string GetBuildToolsDirectory(BuildTarget target)
652+
{
653+
return Path.Combine(GetPlaybackEngineDirectory(target, BuildOptions.None, false), "Tools");
654+
}
657655

658656
[FreeFunction]
659657
internal static extern string GetMonoRuntimeLibDirectory(BuildTarget target);
660658

661-
[FreeFunction]
662-
internal static extern string CompatibilityProfileToClassLibFolder(ApiCompatibilityLevel compatibilityLevel);
659+
[RequiredByNativeCode]
660+
internal static string CompatibilityProfileToClassLibFolder(ApiCompatibilityLevel compatibilityLevel)
661+
{
662+
var target = EditorUserBuildSettings.activeBuildTarget;
663+
var suffix = BuildTargetDiscovery.GetPlatformProfileSuffix(target);
664+
665+
switch (compatibilityLevel)
666+
{
667+
case ApiCompatibilityLevel.NET_Unity_4_8:
668+
return "unityjit-" + suffix;
669+
670+
case ApiCompatibilityLevel.NET_Standard:
671+
return "unityaot-" + suffix;
672+
673+
default:
674+
Debug.LogError($"Unknown API compatibility level: {compatibilityLevel}.");
675+
return "unityjit";
676+
}
677+
}
663678

664679
internal static string GetBuildTargetGroupName(BuildTarget target)
665680
{
@@ -669,9 +684,6 @@ internal static string GetBuildTargetGroupName(BuildTarget target)
669684
[FreeFunction]
670685
internal static extern string GetBuildTargetGroupName(BuildTargetGroup buildTargetGroup);
671686

672-
[FreeFunction]
673-
internal static extern bool SupportsReflectionEmit(BuildTarget target);
674-
675687
[RequiredByNativeCode]
676688
public static PlayerConnectionInitiateMode GetPlayerConnectionInitiateMode(BuildTarget targetPlatform, BuildOptions buildOptions)
677689
{

Editor/Mono/BuildPipeline/BuildPlatform.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ public List<BuildPlatform> GetValidPlatforms(bool includeMetaPlatforms)
181181
List<BuildPlatform> platforms = new List<BuildPlatform>();
182182
foreach (BuildPlatform bp in buildPlatforms)
183183
if (bp.namedBuildTarget == NamedBuildTarget.Standalone ||
184-
(bp.installed && BuildPipeline.IsBuildTargetSupported(bp.namedBuildTarget.ToBuildTargetGroup(), bp.defaultTarget)))
184+
(bp.installed && BuildPipeline.IsBuildPlatformSupported(bp.defaultTarget)))
185185
platforms.Add(bp);
186186

187187
return platforms;

Editor/Mono/BuildPlayerWindow.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,14 @@ public GUIContent GetDownloadErrorForTarget(BuildTarget target)
107107
EditorGUIUtility.TrTextContent("No Override", "Do not modify texture import compression settings."),
108108
EditorGUIUtility.TrTextContent("Force Fast Compressor", "Use a faster but lower quality texture compression mode for all compressed textures. Turn off Crunch compression."),
109109
EditorGUIUtility.TrTextContent("Force Uncompressed", "Do not compress textures."),
110+
EditorGUIUtility.TrTextContent("Force No Crunch", "Disable crunch compression on textures.")
110111
};
111112
public readonly int[] textureCompressionValues =
112113
{
113114
(int)OverrideTextureCompression.NoOverride,
114115
(int)OverrideTextureCompression.ForceFastCompressor,
115116
(int)OverrideTextureCompression.ForceUncompressed,
117+
(int)OverrideTextureCompression.ForceNoCrunchCompression
116118
};
117119

118120
public readonly GUIContent textureCompression = EditorGUIUtility.TrTextContent("Texture Compression", "Texture compression override for local development. Fast or Uncompressed can speed up asset imports and platform switches.");
@@ -381,8 +383,7 @@ void ActiveBuildTargetsGUI()
381383

382384
// Switch build target
383385
BuildTarget selectedTarget = EditorUserBuildSettingsUtils.CalculateSelectedBuildTarget();
384-
NamedBuildTarget selectedNamedBuildTarget = EditorUserBuildSettingsUtils.CalculateSelectedNamedBuildTarget();
385-
GUI.enabled = BuildPipeline.IsBuildTargetSupported(selectedNamedBuildTarget.ToBuildTargetGroup(), selectedTarget);
386+
GUI.enabled = BuildPipeline.IsBuildPlatformSupported(selectedTarget);
386387
if (GUILayout.Button(EditorGUIUtility.TrTextContent("Player Settings..."), GUILayout.Width(Styles.kButtonWidth)))
387388
{
388389
SettingsService.OpenProjectSettings("Project/Player");
@@ -801,7 +802,7 @@ void ShowBuildTargetSettings()
801802

802803
bool canInstallInBuildFolder = false;
803804

804-
if (BuildPipeline.IsBuildTargetSupported(namedBuildTarget.ToBuildTargetGroup(), buildTarget))
805+
if (BuildPipeline.IsBuildPlatformSupported(buildTarget))
805806
{
806807
bool shouldDrawProfilerToggles = buildWindowExtension != null ? buildWindowExtension.ShouldDrawProfilerCheckbox() : true;
807808

@@ -1107,7 +1108,7 @@ private static void GUIBuildButtons(IBuildWindowExtension buildWindowExtension,
11071108
}
11081109
else
11091110
{
1110-
GUI.enabled = BuildPipeline.IsBuildTargetSupported(platform.namedBuildTarget.ToBuildTargetGroup(), selectedTarget);
1111+
GUI.enabled = BuildPipeline.IsBuildPlatformSupported(selectedTarget);
11111112
if (GUILayout.Button(styles.switchPlatform, GUILayout.Width(Styles.kButtonWidth)))
11121113
{
11131114
ApplyAssetImportOverridesToSettingsAsset();

Editor/Mono/BuildPlayerWindowBuildMethods.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public static void BuildPlayer(BuildPlayerOptions options)
124124
throw new BuildMethodException();
125125
}
126126

127-
if (!BuildPipeline.IsBuildTargetSupported(options.targetGroup, options.target))
127+
if (!BuildPipeline.IsBuildPlatformSupported(options.target))
128128
throw new BuildMethodException("Build target is not supported.");
129129

130130
string module = ModuleManager.GetTargetStringFrom(options.target);

0 commit comments

Comments
 (0)