Project_WL/AgentScripts/WL816j_Build.cs

77 lines
4.5 KiB
C#
Raw Permalink 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-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<Material>(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<Material>(dst) == null)
{
AssetDatabase.CopyAsset(Dir + "Farm_Water_WL_C.mat", dst);
AssetDatabase.ImportAsset(dst);
}
var m = AssetDatabase.LoadAssetAtPath<Material>(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<WL.Look.Farm.WLIslandLookSettings>(
"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);
}
}