// WL-816j — ⑤ 채택값을 에셋으로 (에디트 모드 · Play 중 금지) // Farm_Water_WL_D.mat = 816h 채택 C 의 복사본 + 무늬/움직임/거품만 수정. // 색(WaterColor·DarkColor·FoamColor·FoamShadowColor)과 DeepDistance·Height·WaweSpeed 는 C 그대로. using System.Text; using UnityEngine; using UnityEditor; public static class WL816j_Build { const string Dir = "Assets/WL/Look/Farm/Materials/"; const string R_Size = "Vector1_07238257334b4a149e675e2451801030"; const string R_Speed = "Vector1_8e22a98f75c94b218c49e6c4805e799d"; const string R_Strength = "Vector1_99cc56b5c6fd474082f07f00a6df94f9"; const string R_NoiseSpeed = "Vector1_ad7e0fcd37f44d68b68de6f06bb43b96"; const string R_FoamScale = "Vector1_11671d7a4cdb4d059a6c69e39f3f7b3f"; const string R_FoamSpeed = "Vector1_3089b6a325a44c1686907af4ee3b0776"; const string R_FoamDistance = "Vector1_101dc4546b684d40bc2ff2fc59ab43d5"; const string R_FoamEdge = "Vector1_34f757bec6b8422b9aef3b9d97117a6e"; const string C_Light = "Color_1ec6cccf8ead489ebb917674f7e8b3b1"; public static void Run() { var sb = new StringBuilder(); var src = AssetDatabase.LoadAssetAtPath(Dir + "Farm_Water_WL_C.mat"); if (src == null) { Debug.LogError("[816j] C 없음"); return; } string dst = Dir + "Farm_Water_WL_D.mat"; if (AssetDatabase.LoadAssetAtPath(dst) == null) { AssetDatabase.CopyAsset(Dir + "Farm_Water_WL_C.mat", dst); AssetDatabase.ImportAsset(dst); } var m = AssetDatabase.LoadAssetAtPath(dst); // 무늬 1칸 2.5 m (평면 1000 m ÷ (Size × 보로노이 6칸)) const float plane = 1000f, cells = 6f, cellM = 2.5f, flow = 0.8f, foamM = 0.75f, churn = 0.5f; float size = plane / (cellM * cells); m.SetFloat(R_Size, size); m.SetFloat(R_Strength, 0.3085f / size); // 텍스처 기준 뒤틀림은 816h 와 동일 m.SetFloat(R_Speed, flow * size / plane); m.SetFloat(R_NoiseSpeed, flow * size / plane); m.SetColor(C_Light, new Color(0.80f, 0.90f, 0.96f, 1f)); // 무늬 대비만 낮춤(물색은 그대로) float fs = plane / foamM; m.SetFloat(R_FoamScale, fs); m.SetFloat(R_FoamSpeed, churn * fs / plane); m.SetFloat(R_FoamDistance, 6f); m.SetFloat(R_FoamEdge, 1f); EditorUtility.SetDirty(m); var cfg = AssetDatabase.LoadAssetAtPath( "Assets/WL/Look/Farm/Resources/WL/WLIslandLookSettings.asset"); if (cfg == null) { Debug.LogError("[816j] SO 없음"); return; } var so = new SerializedObject(cfg); so.FindProperty("waterTo").objectReferenceValue = m; so.ApplyModifiedPropertiesWithoutUndo(); EditorUtility.SetDirty(cfg); AssetDatabase.SaveAssets(); sb.AppendLine("=== WL-816j 채택값 ==="); sb.AppendLine("Farm_Water_WL_D.mat (= C 복사본)"); sb.AppendLine(" Size " + m.GetFloat(R_Size).ToString("F2") + " → 무늬 1칸 " + (plane / (m.GetFloat(R_Size) * cells)).ToString("F2") + " m (지금 21.3 m)"); sb.AppendLine(" Strength " + m.GetFloat(R_Strength).ToString("G4") + " · Speed/NoiseSpeed " + m.GetFloat(R_Speed).ToString("G4") + " → 무늬가 흐르는 속도 " + flow + " m/s (실측 1.16 m/s)"); sb.AppendLine(" LightColor " + m.GetColor(C_Light) + " (무늬 줄의 밝기만 · 물색 불변)"); sb.AppendLine(" FoamScale " + m.GetFloat(R_FoamScale).ToString("F0") + " → 거품알 " + foamM + " m · FoamSpeed " + m.GetFloat(R_FoamSpeed).ToString("G4") + " · FoamDistance " + m.GetFloat(R_FoamDistance) + " · FoamEdge " + m.GetFloat(R_FoamEdge)); sb.AppendLine(" 그대로 = WaterColor " + m.GetColor("Color_9af4ad59934f40d1ae6565e6ab22c45e") + " DarkColor " + m.GetColor("Color_ca031ae309ff42bdb95f777248fb961d") + " DeepDistance " + m.GetFloat("Vector1_566e288f42864b8e9432d81fbdb83f38") + " Height " + m.GetFloat("Vector1_d813b569a4d541d1b2ac4ea9bc66a3b9") + " WaweSpeed " + m.GetFloat("Vector1_ff7a2780aaa94ddd86e156c4707e39a2")); sb.AppendLine("SO waterTo = " + (cfg.waterTo ? cfg.waterTo.name : "없음") + " · waterMode = " + cfg.waterMode); System.IO.File.WriteAllText("AgentScripts/WL816j_BUILD.txt", sb.ToString()); Debug.Log("[816j build]\n" + sb); } }