Skip to content

Commit 9cecb4a

Browse files
author
Unity Technologies
committed
Unity 6000.1.0a4 C# reference source code
1 parent ac359b9 commit 9cecb4a

File tree

58 files changed

+1178
-940
lines changed

Some content is hidden

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

58 files changed

+1178
-940
lines changed

Editor/Mono/Animation/AnimationWindow/AnimationWindowState.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ void RebuildAllCurvesCacheIfNecessary()
697697
m_AllCurvesCache.Clear();
698698

699699
var animationClip = activeAnimationClip;
700-
if (animationClip == null)
700+
if (animationClip == null || (!selection.animationIsEditable && !showReadOnly))
701701
return;
702702

703703
EditorCurveBinding[] curveBindings = AnimationUtility.GetCurveBindings(animationClip);

Editor/Mono/AssetStore/AssetStoreWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static AssetStoreWindow Init()
2929
}
3030
}
3131

32-
[MenuItem("Window/Asset Store", false, 1497)]
32+
[MenuItem("Window/Package Management/Asset Store", false, 2000)]
3333
public static void OpenAssetStoreInBrowser()
3434
{
3535
string assetStoreUrl = UnityConnect.instance.GetConfigurationURL(CloudConfigUrl.CloudAssetStoreUrl);
@@ -39,7 +39,7 @@ public static void OpenAssetStoreInBrowser()
3939
else Application.OpenURL(assetStoreUrl);
4040
}
4141

42-
[MenuItem("Window/My Assets", false, 1498)]
42+
[MenuItem("Window/Package Management/My Assets", false, 1501)]
4343
public static void OpenMyAssetsInPackageManager()
4444
{
4545
PackageManagerWindow.OpenAndSelectPage(PackageManager.UI.Internal.MyAssetsPage.k_Id);

Editor/Mono/BuildPipeline/BuildPlatform.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ static Texture2D DuplicateAsReadableTexture(Texture2D sourceTexture)
119119
RenderTexture.active = renderTexture;
120120
var readableTexture = new Texture2D(sourceTexture.width, sourceTexture.height);
121121
readableTexture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
122+
readableTexture.pixelsPerPoint = sourceTexture.pixelsPerPoint;
122123
readableTexture.Apply();
123124
RenderTexture.active = previouslyActiveRenderTexture;
124125
RenderTexture.ReleaseTemporary(renderTexture);

Editor/Mono/BuildProfile/BuildProfileContext.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,9 @@ internal List<GUID> GetMissingKnownPlatformModules()
280280
if (m_PlatformIdToClassicPlatformProfile.ContainsKey(key))
281281
continue;
282282

283+
if (BuildProfileModuleUtil.IsPlatformVisibleInPlatformBrowserOnly(key))
284+
continue;
285+
283286
// Installed flag, as calculated by BuildPlatform
284287
if (BuildProfileModuleUtil.IsModuleInstalled(key))
285288
continue;
@@ -625,7 +628,6 @@ static void CreateOrLoad()
625628
{
626629
s_Instance = CreateInstance<BuildProfileContext>();
627630
s_Instance.hideFlags = HideFlags.DontSave;
628-
Save();
629631
}
630632

631633
System.Diagnostics.Debug.Assert(s_Instance != null);

Editor/Mono/BuildProfile/BuildProfileCreate.cs

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,9 @@ internal static BuildProfile CreateInstance(GUID platformId)
5656
/// event after an asset is created by AssetDatabase.CreateAsset.
5757
/// </summary>
5858
[VisibleToOtherModules("UnityEditor.BuildProfileModule")]
59-
internal static void CreateInstance(GUID platformId, string assetPath)
59+
internal static void CreateInstance(GUID platformId, string assetPath, int preconfiguredSettingsVariant = -1)
6060
{
6161
var (buildTarget, subtarget) = BuildProfileModuleUtil.GetBuildTargetAndSubtarget(platformId);
62-
var moduleName = BuildProfileModuleUtil.GetModuleName(buildTarget);
6362
var buildProfile = CreateInstance<BuildProfile>();
6463
buildProfile.buildTarget = buildTarget;
6564
buildProfile.subtarget = subtarget;
@@ -68,10 +67,20 @@ internal static void CreateInstance(GUID platformId, string assetPath)
6867
buildProfile,
6968
AssetDatabase.GenerateUniqueAssetPath(assetPath));
7069
buildProfile.OnEnable();
70+
buildProfile.NotifyBuildProfileExtensionOfCreation(preconfiguredSettingsVariant);
7171
// Notify the UI of creation so that the new build profile can be selected
7272
onBuildProfileCreated?.Invoke(buildProfile);
7373
}
7474

75+
internal void NotifyBuildProfileExtensionOfCreation(int preconfiguredSettingsVariant)
76+
{
77+
var buildProfileExtension = BuildProfileModuleUtil.GetBuildProfileExtension(platformGuid);
78+
if (buildProfileExtension != null)
79+
{
80+
buildProfileExtension.OnBuildProfileCreated(this, preconfiguredSettingsVariant);
81+
}
82+
}
83+
7584
void TryCreatePlatformSettings()
7685
{
7786
if (platformBuildProfile != null)
@@ -88,6 +97,20 @@ void TryCreatePlatformSettings()
8897
}
8998
}
9099

100+
/// <summary>
101+
/// Add Graphics Settings overrides to the build profile.
102+
/// </summary>
103+
internal void CreateGraphicsSettings()
104+
{
105+
if (graphicsSettings != null)
106+
return;
107+
108+
graphicsSettings = CreateInstance<BuildProfileGraphicsSettings>();
109+
graphicsSettings.Instantiate();
110+
AssetDatabase.AddObjectToAsset(graphicsSettings, this);
111+
EditorUtility.SetDirty(this);
112+
}
113+
91114
/// <summary>
92115
/// Remove the Graphics Settings overrides from the build profile.
93116
/// </summary>
@@ -103,6 +126,20 @@ internal void RemoveGraphicsSettings()
103126
OnGraphicsSettingsSubAssetRemoved?.Invoke();
104127
}
105128

129+
/// <summary>
130+
/// Add Quality Settings overrides to the build profile.
131+
/// </summary>
132+
internal void CreateQualitySettings()
133+
{
134+
if (qualitySettings != null)
135+
return;
136+
137+
qualitySettings = ScriptableObject.CreateInstance<BuildProfileQualitySettings>();
138+
qualitySettings.Instantiate();
139+
AssetDatabase.AddObjectToAsset(qualitySettings, this);
140+
EditorUtility.SetDirty(this);
141+
}
142+
106143
/// <summary>
107144
/// Remove the Quality Settings overrides from the build profile.
108145
/// </summary>

Editor/Mono/BuildProfile/BuildProfileModuleUtil.cs

Lines changed: 108 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System;
66
using System.Collections.Generic;
7+
using System.Text;
78
using UnityEditor.Modules;
89
using UnityEditor.Rendering;
910
using UnityEngine;
@@ -427,6 +428,43 @@ public static void RemovePlayerSettings(BuildProfile buildProfile)
427428
buildProfile.RemovePlayerSettings(clearYaml: true);
428429
}
429430

431+
/// <summary>
432+
/// Create graphics settings override for build profile
433+
/// </summary>
434+
public static void CreateGraphicsSettings(BuildProfile buildProfile)
435+
{
436+
buildProfile.CreateGraphicsSettings();
437+
}
438+
439+
/// <summary>
440+
/// Remove build profile graphics settings override
441+
/// </summary>
442+
public static void RemoveGraphicsSettings(BuildProfile buildProfile)
443+
{
444+
buildProfile.RemoveGraphicsSettings();
445+
}
446+
447+
/// <summary>
448+
/// Create graphics settings quality for build profile
449+
/// </summary>
450+
public static void CreateQualitySettings(BuildProfile buildProfile)
451+
{
452+
buildProfile.CreateQualitySettings();
453+
}
454+
455+
/// <summary>
456+
/// Remove build profile quality settings override
457+
/// </summary>
458+
public static void RemoveQualitySettings(BuildProfile buildProfile)
459+
{
460+
buildProfile.RemoveQualitySettings();
461+
}
462+
463+
public static void NotifyBuildProfileExtensionOfCreation(BuildProfile buildProfile, int preconfiguredSettingsVariant)
464+
{
465+
buildProfile.NotifyBuildProfileExtensionOfCreation(preconfiguredSettingsVariant);
466+
}
467+
430468
/// <summary>
431469
/// Create player settings for build profile based on global player settings
432470
/// </summary>
@@ -680,7 +718,7 @@ public static List<BuildProfile> GetAllBuildProfiles()
680718
return result;
681719
}
682720

683-
public static string[] GetSettingsRequiringRestart(PlayerSettings previousProfileSettings, PlayerSettings newProfileSettings, BuildTarget oldBuildTarget, BuildTarget newBuildTarget)
721+
public static PlayerSettingsRequiringRestart[] GetSettingsRequiringRestart(PlayerSettings previousProfileSettings, PlayerSettings newProfileSettings, BuildTarget oldBuildTarget, BuildTarget newBuildTarget)
684722
{
685723
return PlayerSettings.GetSettingsRequiringRestart(previousProfileSettings, newProfileSettings, oldBuildTarget, newBuildTarget);
686724
}
@@ -722,14 +760,19 @@ public static bool HandlePlayerSettingsChanged(
722760
}
723761
}
724762

725-
string[] settingsRequiringRestart = GetSettingsRequiringRestart(currentPlayerSettings,
763+
var settingsRequiringRestart = GetSettingsRequiringRestart(currentPlayerSettings,
726764
nextPlayerSettings, currentBuildTarget, nextBuildTarget);
727765
// if we've found settings that need restarting..
728766
if (settingsRequiringRestart.Length > 0 )
729767
{
730768
// ..we show the restart prompt, if the user restarts, we add a restart call to the editor
731769
if (ShowRestartEditorDialog(settingsRequiringRestart))
732770
{
771+
if (ContainsPlayerSetting(settingsRequiringRestart, PlayerSettingsRequiringRestart.VirtualTexturing))
772+
{
773+
PlayerSettings.SyncVirtualTexturingState(nextPlayerSettings);
774+
}
775+
733776
EditorApplication.delayCall += EditorApplication.RestartEditorAndRecompileScripts;
734777
return true;
735778
}
@@ -746,22 +789,21 @@ public static bool HandlePlayerSettingsChanged(
746789
return true;
747790
}
748791

792+
749793
/// <summary>
750794
/// Show the restart editor dialog with the names of the settings that required the restart to take effect.
751795
/// </summary>
752-
static bool ShowRestartEditorDialog(string[] settingsRequiringRestart)
796+
static bool ShowRestartEditorDialog(PlayerSettingsRequiringRestart[] settingsRequiringRestart)
753797
{
754-
var editorPromptText = new System.Text.StringBuilder();
798+
var editorPromptText = new StringBuilder();
755799
editorPromptText.AppendLine(L10n.Tr("The Unity editor must be restarted for the following settings to take effect:"));
756-
for (int i = 0; i < settingsRequiringRestart.Length; i++)
757-
{
758-
editorPromptText.AppendLine(settingsRequiringRestart[i]);
759-
}
760-
800+
var playerSettingNames = GetPlayerSettingNamesToEditorRestartPromptText(settingsRequiringRestart);
801+
editorPromptText.AppendLine(playerSettingNames.ToString());
761802
return EditorUtility.DisplayDialog(L10n.Tr("Unity editor restart required"),
762803
editorPromptText.ToString(), L10n.Tr("Apply"), L10n.Tr("Cancel"));
763804
}
764805

806+
765807
internal static PlayerSettings GetBuildProfileOrGlobalPlayerSettings(BuildProfile buildProfile)
766808
{
767809
if (buildProfile == null || buildProfile.playerSettings == null)
@@ -770,5 +812,62 @@ internal static PlayerSettings GetBuildProfileOrGlobalPlayerSettings(BuildProfil
770812
}
771813
return buildProfile.playerSettings;
772814
}
815+
816+
public static bool IsBasePlatformOfActivePlatform(GUID platformGuid)
817+
{
818+
var module = ModuleManager.FindPlatformSupportModule(EditorUserBuildSettings.activePlatformGuid);
819+
if (module == null)
820+
return false;
821+
if (module is IDerivedBuildTargetProvider derivedBuildTargetProvider)
822+
{
823+
var basePlatformGuid = derivedBuildTargetProvider.GetBasePlatformGuid();
824+
return basePlatformGuid == platformGuid;
825+
}
826+
return false;
827+
}
828+
829+
public static void RepaintProjectSettingsWindow()
830+
{
831+
foreach (var window in EditorWindow.activeEditorWindows)
832+
{
833+
if (window is ProjectSettingsWindow)
834+
{
835+
window.Repaint();
836+
}
837+
}
838+
}
839+
840+
/*
841+
* private helper functions
842+
*/
843+
private static bool ContainsPlayerSetting(PlayerSettingsRequiringRestart[] playerSettings, PlayerSettingsRequiringRestart targetSetting)
844+
{
845+
foreach (PlayerSettingsRequiringRestart setting in playerSettings)
846+
{
847+
if (setting == targetSetting)
848+
{
849+
return true;
850+
}
851+
}
852+
return false;
853+
}
854+
855+
private static StringBuilder GetPlayerSettingNamesToEditorRestartPromptText(PlayerSettingsRequiringRestart[] settingsRequiringRestart)
856+
{
857+
var settingsText = new StringBuilder();
858+
foreach (PlayerSettingsRequiringRestart setting in settingsRequiringRestart)
859+
{
860+
var settingPromptText = setting switch
861+
{
862+
PlayerSettingsRequiringRestart.IncrementalGC => "Incremental GC",
863+
PlayerSettingsRequiringRestart.ActiveInputHandling => "Active Input Handling",
864+
PlayerSettingsRequiringRestart.GraphicsJobs => "Graphics Jobs",
865+
PlayerSettingsRequiringRestart.VirtualTexturing => "Virtual Texturing",
866+
_ => string.Empty
867+
};
868+
settingsText.AppendLine(settingPromptText);
869+
}
870+
return settingsText;
871+
}
773872
}
774873
}

Editor/Mono/BuildProfile/BuildProfileQualitySettings.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,15 @@ public void RenameQualityLevel(string oldName, string newName)
6262

6363
EditorUtility.SetDirty(this);
6464
}
65+
66+
public void AddQualityLevel(string qualityLevel)
67+
{
68+
var newQualityLevels = new string[qualityLevels.Length + 1];
69+
Array.Copy(qualityLevels, 0, newQualityLevels, 0, qualityLevels.Length);
70+
newQualityLevels[qualityLevels.Length] = qualityLevel;
71+
qualityLevels = newQualityLevels;
72+
73+
EditorUtility.SetDirty(this);
74+
}
6575
}
6676
}

0 commit comments

Comments
 (0)