You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.2 KiB
52 lines
2.2 KiB
using System.IO; |
|
using UnityEngine; |
|
using UnityEngine.Rendering.Universal; |
|
using UnityEngine.Rendering; |
|
using UnityEditor; |
|
using UnityEditor.Rendering; |
|
|
|
namespace UnityEngine.Rendering.Universal |
|
{ |
|
internal class UniversalGlobalSettingsCreator : UnityEditor.ProjectWindowCallback.EndNameEditAction |
|
{ |
|
public override void Action(int instanceId, string pathName, string resourceFile) |
|
{ |
|
var newAsset = UniversalRenderPipelineGlobalSettings.Create(pathName, settings); |
|
if (updateGraphicsSettings) |
|
UniversalRenderPipelineGlobalSettings.UpdateGraphicsSettings(newAsset); |
|
ProjectWindowUtil.ShowCreatedAsset(newAsset); |
|
} |
|
|
|
static UniversalRenderPipelineGlobalSettings settings; |
|
static bool updateGraphicsSettings = false; |
|
public static void Clone(UniversalRenderPipelineGlobalSettings src, bool activateAsset) |
|
{ |
|
settings = src; |
|
updateGraphicsSettings = activateAsset; |
|
var path = AssetDatabase.GetAssetPath(src); |
|
|
|
var assetCreator = ScriptableObject.CreateInstance<UniversalGlobalSettingsCreator>(); |
|
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(assetCreator.GetInstanceID(), assetCreator, path, CoreEditorStyles.globalSettingsIcon, null); |
|
} |
|
|
|
public static void Create(bool useProjectSettingsFolder, bool activateAsset) |
|
{ |
|
settings = null; |
|
updateGraphicsSettings = activateAsset; |
|
|
|
var path = $"{UniversalRenderPipelineGlobalSettings.defaultAssetName}.asset"; |
|
if (useProjectSettingsFolder) |
|
{ |
|
path = $"Assets/{path}"; |
|
CoreUtils.EnsureFolderTreeInAssetFilePath(path); |
|
} |
|
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<UniversalGlobalSettingsCreator>(), path, CoreEditorStyles.globalSettingsIcon, null); |
|
} |
|
|
|
[MenuItem("Assets/Create/Rendering/URP Global Settings Asset", priority = CoreUtils.Sections.section4 + 1)] |
|
internal static void CreateUniversalRenderPipelineGlobalSettings() |
|
{ |
|
UniversalGlobalSettingsCreator.Create(useProjectSettingsFolder: false, activateAsset: false); |
|
} |
|
} |
|
}
|
|
|