Project_WL/AgentScripts/WL816k_Props.cs

33 lines
1.9 KiB
C#
Raw Permalink Normal View History

// WL-816k — 데모 물 셰이더의 **숨김 포함 전체 속성** 실측 (깊이·불투명도 제어가 있는지)
using UnityEngine;
using System.Text;
public static class WL816k_Props
{
public static void Run()
{
var sb = new StringBuilder();
var m = UnityEditor.AssetDatabase.LoadAssetAtPath<Material>("Assets/WL/Look/Farm/Materials/Farm_Water_Demo.mat");
var sh = m != null ? m.shader : null;
if (sh == null) { Debug.Log("[816k props] 🔴 없음"); return; }
sb.AppendLine("=== " + sh.name + " 전체 속성 " + sh.GetPropertyCount() + "개 (숨김 포함) ===");
for (int i = 0; i < sh.GetPropertyCount(); i++)
{
string n = sh.GetPropertyName(i);
var t = sh.GetPropertyType(i);
var fl = sh.GetPropertyFlags(i);
string v = "?";
if (t == UnityEngine.Rendering.ShaderPropertyType.Color) v = m.GetColor(n).ToString("F3");
else if (t == UnityEngine.Rendering.ShaderPropertyType.Vector) v = m.GetVector(n).ToString("F3");
else if (t == UnityEngine.Rendering.ShaderPropertyType.Float || t == UnityEngine.Rendering.ShaderPropertyType.Range) v = m.GetFloat(n).ToString("F4");
else if (t == UnityEngine.Rendering.ShaderPropertyType.Texture) { var tx = m.GetTexture(n); v = tx == null ? "(없음)" : tx.name; }
sb.AppendLine(" " + n + " [" + t + "]" + (fl == UnityEngine.Rendering.ShaderPropertyFlags.None ? "" : " {" + fl + "}") + " = " + v);
}
sb.AppendLine("");
sb.AppendLine("renderQueue=" + m.renderQueue + " · passes=" + m.passCount + " · keywords=" + string.Join(",", m.shaderKeywords));
for (int p = 0; p < m.passCount; p++) sb.AppendLine(" pass " + p + " = " + m.GetPassName(p) + " enabled=" + m.GetShaderPassEnabled(m.GetPassName(p)));
System.IO.File.WriteAllText("AgentScripts/WL816k_PROPS.txt", sb.ToString());
Debug.Log("[816k props]\n" + sb);
}
}