// WL-815c 튜닝 — 캡처 1차 실측 뒤 값 조정 + 링 머티리얼 진단 // unity command run_script --file AgentScripts/WL815c_Tune.cs --entry WL815c_Tune.Run using System.Text; using UnityEditor; using UnityEngine; using WL.Combat.Stage; public static class WL815c_Tune { const string kPath = "Assets/WL/Combat/Stage/Barrier/Resources/WL/WLStageBarrierSettings.asset"; public static string Run() { var sb = new StringBuilder(); var so = AssetDatabase.LoadAssetAtPath(kPath); if (so == null) return "에셋 없음"; // ── 링 머티리얼 진단(왜 색이 안 먹는가) if (so.ringPrefab != null) { var rs = so.ringPrefab.GetComponentsInChildren(true); for (int i = 0; i < rs.Length; i++) { var m = rs[i].sharedMaterial; sb.Append(" 링 PSR ").Append(rs[i].name) .Append(" · shader ").Append(m != null ? m.shader.name : "null") .Append(" · _TintColor ").Append(m != null && m.HasProperty("_TintColor") ? m.GetColor("_TintColor").ToString() : "없음") .Append(" · _Color ").Append(m != null && m.HasProperty("_Color") ? m.GetColor("_Color").ToString() : "없음") .Append(" · renderMode ").Append(rs[i].renderMode) .Append(" · 정렬 ").Append(rs[i].sortingOrder).AppendLine(); } var ps = so.ringPrefab.GetComponentsInChildren(true); for (int i = 0; i < ps.Length; i++) sb.Append(" 링 PS ").Append(ps[i].name) .Append(" · startColor ").Append(ps[i].main.startColor.color.ToString()) .Append(" · colorOverLifetime ").Append(ps[i].colorOverLifetime.enabled ? "ON" : "off") .Append(" · size ").Append(ps[i].main.startSize.constantMax.ToString("F2")).AppendLine(); } // ── ⓒ 불꽃: 1차 캡처에서 「흩어진 불티」로 보였다 → 크기·밀도를 올린다(실측 기반) so.fireScale = 3f; // Fire_Particles 는 모닥불 크기(shape r0.46) → 3배면 약 1.4 m so.fireSpacing = 2.5f; // 둘레 88 m → 35기 so.maxTotalParticles = 1600; // 35 × 125 = 4375 → 방출률 ×0.37 so.fireGroundSnap = true; // ── ⓐ 링: 겹으로 두께를 낸다(도트 룩 대비) + 색은 「곱」이라 1 보다 큰 값이 증폭이다 so.ringExtraRings = 2; so.ringExtraSpacing = 0.5f; so.ringColor = new Color(6f, 1.2f, 0.4f, 1f); // 원색(어두운 청 기저 0.027,0.056,0.104)에 곱 so.ringTintEnabled = false; // 🔴 실측 3회 — 이 셰이더에서는 화면 색이 안 바뀐다(보고서 「미확인」) EditorUtility.SetDirty(so); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); sb.Append(" 적용: fireScale ").Append(so.fireScale) .Append(" · fireSpacing ").Append(so.fireSpacing) .Append(" · maxTotalParticles ").Append(so.maxTotalParticles) .Append(" · ringExtraRings ").Append(so.ringExtraRings).AppendLine(); System.IO.File.WriteAllText("AgentScripts/WL815c_TUNE.txt", sb.ToString()); return "tune done → AgentScripts/WL815c_TUNE.txt"; } }