// WL-814c 임시 조사 — Critter Toon 셰이더의 키워드/프로퍼티 실측(게임 코드 아님 · 커밋 대상 아님) using System.IO; using System.Text; using UnityEditor; using UnityEngine; using UnityEngine.Rendering; public static class WL814c_KwProbe { public static void Run() { var sb = new StringBuilder(); var sh = AssetDatabase.LoadAssetAtPath("Assets/3DPixelArtEnvironment/Shaders/Toon.shadergraph"); sb.AppendLine("shader = " + (sh != null ? sh.name : "null")); if (sh != null) { var ks = sh.keywordSpace; sb.AppendLine("keywordSpace " + ks.keywordCount + "개:"); foreach (var k in ks.keywords) sb.AppendLine(" - " + k.name + " (valid=" + k.isValid + " override=" + k.isOverridable + ")"); sb.AppendLine("properties " + sh.GetPropertyCount() + "개:"); for (int i = 0; i < sh.GetPropertyCount(); i++) sb.AppendLine(" " + sh.GetPropertyName(i) + " : " + sh.GetPropertyType(i) + " flags=" + sh.GetPropertyFlags(i)); } var demo = AssetDatabase.LoadAssetAtPath("Assets/3DPixelArtEnvironment/Materials/Stone.mat"); if (demo != null) { sb.AppendLine("데모 Stone.mat 활성 키워드: " + string.Join(" ", demo.shaderKeywords)); sb.AppendLine(" _Cloud_Density=" + demo.GetFloat("_Cloud_Density") + " _Cloud_Strength=" + demo.GetFloat("_Cloud_Strength") + " _Cloud_Cover=" + demo.GetFloat("_Cloud_Cover")); } var mine = AssetDatabase.LoadAssetAtPath("Assets/WL/Look/Env/Materials/CPT_Terrain_01_Toon.mat"); if (mine != null) { sb.AppendLine("생성 CPT_Terrain_01_Toon.mat 활성 키워드: " + string.Join(" ", mine.shaderKeywords)); sb.AppendLine(" _Cloud_Density=" + mine.GetFloat("_Cloud_Density") + " _Cloud_Strength=" + mine.GetFloat("_Cloud_Strength") + " _Shades=" + mine.GetFloat("_Shades")); } File.WriteAllText("AgentScripts/WL814c_KW.txt", sb.ToString(), new UTF8Encoding(false)); Debug.Log(sb.ToString()); } }