73 lines
2.9 KiB
C#
73 lines
2.9 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Rendering.Universal;
|
|
|
|
namespace UnityEditor.Rendering.Universal.Internal
|
|
{
|
|
/// <summary>
|
|
/// Contains a database of built-in resource GUIds. These are used to load built-in resource files.
|
|
/// </summary>
|
|
public static class ResourceGuid
|
|
{
|
|
/// <summary>
|
|
/// GUId for the <c>ScriptableRendererFeature</c> template file.
|
|
/// </summary>
|
|
public static readonly string rendererTemplate = "51493ed8d97d3c24b94c6cffe834630b";
|
|
}
|
|
}
|
|
|
|
namespace UnityEditor.Rendering.Universal
|
|
{
|
|
static partial class EditorUtils
|
|
{
|
|
internal enum Unit { Metric, Percent }
|
|
|
|
internal class Styles
|
|
{
|
|
//Measurements
|
|
public static float defaultLineSpace = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
|
|
|
public static readonly GUIContent alembicMotionVectors = EditorGUIUtility.TrTextContent("Alembic Motion Vectors",
|
|
"When enabled, the material will use motion vectors from the Alembic animation cache. Should not be used on regular meshes or Alembic caches without precomputed motion vectors.");
|
|
}
|
|
|
|
internal static void FeatureHelpBox(string message, MessageType type)
|
|
{
|
|
CoreEditorUtils.DrawFixMeBox(message, type, "Open", () =>
|
|
{
|
|
Selection.activeObject = UniversalRenderPipeline.asset.scriptableRendererData;
|
|
GUIUtility.ExitGUI();
|
|
});
|
|
}
|
|
|
|
internal static void DrawRenderingLayerMask(SerializedProperty property, GUIContent style)
|
|
{
|
|
Rect controlRect = EditorGUILayout.GetControlRect(true);
|
|
int renderingLayer = property.intValue;
|
|
|
|
string[] renderingLayerMaskNames = UniversalRenderPipelineGlobalSettings.instance.renderingLayerMaskNames;
|
|
int maskCount = (int)Mathf.Log(renderingLayer, 2) + 1;
|
|
if (renderingLayerMaskNames.Length < maskCount && maskCount <= 32)
|
|
{
|
|
var newRenderingLayerMaskNames = new string[maskCount];
|
|
for (int i = 0; i < maskCount; ++i)
|
|
{
|
|
newRenderingLayerMaskNames[i] = i < renderingLayerMaskNames.Length ? renderingLayerMaskNames[i] : $"Unused Layer {i}";
|
|
}
|
|
renderingLayerMaskNames = newRenderingLayerMaskNames;
|
|
|
|
EditorGUILayout.HelpBox($"One or more of the Rendering Layers is not defined in the Universal Global Settings asset.", MessageType.Warning);
|
|
}
|
|
|
|
EditorGUI.BeginProperty(controlRect, style, property);
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
renderingLayer = EditorGUI.MaskField(controlRect, style, renderingLayer, renderingLayerMaskNames);
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
property.uintValue = (uint)renderingLayer;
|
|
|
|
EditorGUI.EndProperty();
|
|
}
|
|
}
|
|
}
|