77 lines
4.5 KiB
C#
77 lines
4.5 KiB
C#
|
|
// 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);
|
|||
|
|
}
|
|||
|
|
}
|