Project_WL/AgentScripts/WL815c_Tune.cs

66 lines
3.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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";
}
}