52 lines
2.8 KiB
C#
52 lines
2.8 KiB
C#
using Misaki.ShaderGUI;
|
|
using System.Linq;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
using static Misaki.HdrpToon.UTSPropertyName.Stocking;
|
|
|
|
namespace Misaki.HdrpToon.Editor
|
|
{
|
|
internal class StockingScope : MaterialUIScope<ShaderGUIExpandable>
|
|
{
|
|
private static class Properties
|
|
{
|
|
public static MaterialProperty stockingFresnelWidth;
|
|
public static MaterialProperty stockingSparkleSpacing;
|
|
public static MaterialProperty stockingSparkleAmount;
|
|
public static MaterialProperty stockingSparkleSize;
|
|
public static MaterialProperty stockingSparkleIntensity;
|
|
}
|
|
|
|
private static class Styles
|
|
{
|
|
public static readonly GUIContent stockingFresnelWidthText = new("Fresnel Width", "Set the width of the fresnel effect for the stocking.");
|
|
public static readonly GUIContent stockingSparkleSpacingText = new("Sparkle Spacing", "Set the spacing between sparkles on the stocking.");
|
|
public static readonly GUIContent stockingSparkleAmountText = new("Sparkle Amount", "Set the amount of sparkles on the stocking.");
|
|
public static readonly GUIContent stockingSparkleSizeText = new("Sparkle Size", "Set the size of the sparkles on the stocking.");
|
|
public static readonly GUIContent stockingSparkleIntensityText = new("Sparkle Intensity", "Set the intensity of the sparkle effect for the stocking.");
|
|
}
|
|
|
|
protected override ShaderGUIExpandable ExpandableBit => ShaderGUIExpandable.Stocking;
|
|
protected override GUIContent Header => EditorGUIUtility.TrTextContent("Stocking Settings");
|
|
protected override bool ShowSection => materials.All(mat => mat.HasFeature(SurfaceFeature.Stocking));
|
|
|
|
protected override void LoadMaterialProperties()
|
|
{
|
|
Properties.stockingFresnelWidth = FindProperty(STOCKING_FRESNEL_WIDTH);
|
|
Properties.stockingSparkleSpacing = FindProperty(STOCKING_SPARKLE_SPACING);
|
|
Properties.stockingSparkleAmount = FindProperty(STOCKING_SPARKLE_AMOUNT);
|
|
Properties.stockingSparkleSize = FindProperty(STOCKING_SPARKLE_SIZE);
|
|
Properties.stockingSparkleIntensity = FindProperty(STOCKING_SPARKLE_INTENSITY);
|
|
}
|
|
|
|
protected override void DrawContent()
|
|
{
|
|
editor.ShaderProperty(Properties.stockingFresnelWidth, Styles.stockingFresnelWidthText);
|
|
editor.ShaderProperty(Properties.stockingSparkleSpacing, Styles.stockingSparkleSpacingText);
|
|
editor.ShaderProperty(Properties.stockingSparkleAmount, Styles.stockingSparkleAmountText);
|
|
editor.ShaderProperty(Properties.stockingSparkleSize, Styles.stockingSparkleSizeText);
|
|
editor.ShaderProperty(Properties.stockingSparkleIntensity, Styles.stockingSparkleIntensityText);
|
|
}
|
|
}
|
|
} |