74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace Misaki.HdrpToon.Editor
|
|
{
|
|
public class UTSRendererSettingProvider : SettingsProvider
|
|
{
|
|
class Styles
|
|
{
|
|
public static GUIContent hairShadow = new("Hair Shadow");
|
|
public static GUIContent hairBlending = new("Hair Blending");
|
|
public static GUIContent outline = new("Outline");
|
|
}
|
|
|
|
private SerializedObject _customSettings;
|
|
|
|
private SerializedProperty _hairShadowSetting;
|
|
private SerializedProperty _hairBlendingSetting;
|
|
private SerializedProperty _outlineSetting;
|
|
|
|
public UTSRendererSettingProvider(string path, SettingsScope scopes, IEnumerable<string> keywords = null) : base(path, scopes, keywords)
|
|
{
|
|
}
|
|
|
|
public override void OnActivate(string searchContext, VisualElement rootElement)
|
|
{
|
|
_customSettings = UTSRenderPassSettings.GetSerializedSettings();
|
|
|
|
_hairShadowSetting = _customSettings.FindProperty("hairShadowSetting");
|
|
_hairBlendingSetting = _customSettings.FindProperty("hairBlendingSetting");
|
|
_outlineSetting = _customSettings.FindProperty("outlineSetting");
|
|
}
|
|
|
|
public override void OnGUI(string searchContext)
|
|
{
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
EditorGUILayout.PropertyField(_hairShadowSetting, Styles.hairShadow);
|
|
EditorGUILayout.PropertyField(_hairBlendingSetting, Styles.hairBlending);
|
|
EditorGUILayout.PropertyField(_outlineSetting, Styles.outline);
|
|
_customSettings.ApplyModifiedPropertiesWithoutUndo();
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
UTSRenderPassRegistrar.NotifyRendererSettingChanged();
|
|
}
|
|
|
|
}
|
|
|
|
public static bool IsSettingsAvailable()
|
|
{
|
|
return EditorBuildSettings.TryGetConfigObject<UTSRenderPassSettings>(UTSRenderPassSettings.UTS_RENDERING_SETTINGS_NAME, out _);
|
|
}
|
|
|
|
[SettingsProvider]
|
|
public static SettingsProvider Create()
|
|
{
|
|
if (IsSettingsAvailable())
|
|
{
|
|
var provider = new UTSRendererSettingProvider("Project/UTS", SettingsScope.Project)
|
|
{
|
|
keywords = GetSearchKeywordsFromGUIContentProperties<Styles>()
|
|
};
|
|
|
|
return provider;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|