using System; using UnityEditor; using UnityEngine; namespace Unity.Toonshader { [Serializable] public struct UTSOutlineSetting { public bool enable; public LayerMask layerMask; } [Serializable] public struct UtsHairShadowSetting { public bool enable; public LayerMask casterLayerMask; } [CreateAssetMenu(fileName = "UTSRenderSetting", menuName = "UTS/RenderSetting")] public class UTSRenderPassSetting : ScriptableObject { public const string RENDERER_SETTING_ASSET_PATH = "Packages/com.misaki.hdrp-toon/Runtime/HDRP/Resources/UTSRenderSetting.asset"; public UTSOutlineSetting outlineSetting; public UtsHairShadowSetting hairShadowSetting; internal static UTSRenderPassSetting GetOrCreateSettings() { var settings = AssetDatabase.LoadAssetAtPath(RENDERER_SETTING_ASSET_PATH); if (settings == null) { settings = CreateInstance(); AssetDatabase.CreateAsset(settings, RENDERER_SETTING_ASSET_PATH); AssetDatabase.SaveAssets(); } return settings; } public static SerializedObject GetSerializedSettings() { return new(GetOrCreateSettings()); } } }