Project_WL/AgentScripts/WL815c_Tune.cs

66 lines
3.3 KiB
C#
Raw Normal View History

// 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<WLStageBarrierSettings>(kPath);
if (so == null) return "에셋 없음";
// ── 링 머티리얼 진단(왜 색이 안 먹는가)
if (so.ringPrefab != null)
{
var rs = so.ringPrefab.GetComponentsInChildren<ParticleSystemRenderer>(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<ParticleSystem>(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";
}
}