Project_WL/AgentScripts/WL816f_Build.cs

59 lines
3.0 KiB
C#
Raw Normal View History

[WL-816f] 바닥을 데모와 일치 — 잔디 단색 + 풀 대비↓ + 밀도 2.5→1.8 + 밭 칸 표시 톤↓ (#816) PD 「내가 실행할 때는 전혀 풀밭이 아니야 · 바닥이 완전히 같은 느낌이 나도록」 ■ ① PD 실행 경로 실측 = 훅은 실제로 돈다(버그 아님) InGame 활성 + Level01 Additive 재현: 머티리얼 1,575 렌더러 교체 · 풀 생성 · ReferenceLook on · 콘솔 error 0. 「안 나온다」가 아니라 「데모와 전혀 다르게 보인다」였다. 다만 이 경로에서만 생기는 실측 차이 2가지를 찾아 보고에 적었다 (세이브 파일이 활성 씬 이름으로 갈린다 · RenderSettings 가 InGame 소유). ■ ② 바닥 3요소 (같은 화각·같은 거리 캡처로 판정) 체크무늬 : 잔디 타일 텍스처는 단색(#A0E4A2) — 격자 0. 밭(Soil)의 칸 표시는 게임 기능이라 남기고 **색만** 데모 톤으로(soilTint·soilCheckerContrast). 바닥 색 : #AFEDAE → #A0E4A2 (화면색 평균 데모 #94BE81 ↔ 우리 #9AC37E) 풀 색 : 새 복사본 Farm_Grass_Demo.mat (_DiffuseColor #A6E39F · _ShadowDiffuseColor #95CC8F) → 풀이 바닥과 같은 색으로 깔려 「카펫」이 사라진다(에지% 8.09 → 1.96 · 데모 1.79) 밀도 : 2.5 → 1.8 (6.25 → 3.24 개/㎡) 🔴 Assets/FarmingIsland/** 0줄 · Assets/Script/** 0줄 · 3DPixelArtEnvironment 0줄 · ProjectSettings 0줄 · 전역 URP/품질 0. 되돌리기 = enabled_ = 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 05:19:39 +00:00
// WL-816f — 채택값을 에셋에 굽는다(에디트 모드).
// ① 풀 머티리얼 복사본 `Farm_Grass_Demo.mat`(데모 `Instanced_Grass` 0줄 · 복사본만)
// ② SO: 풀 머티리얼 교체 · 밀도 2.5 → 1.8
public static class WL816f_Build
{
const string SoPath = "Assets/WL/Look/Farm/Resources/WL/WLIslandLookSettings.asset";
const string MatPath = "Assets/WL/Look/Farm/Materials/Farm_Grass_Demo.mat";
public static void Run()
{
var sb = new System.Text.StringBuilder();
var cfg = UnityEditor.AssetDatabase.LoadAssetAtPath<WL.Look.Farm.WLIslandLookSettings>(SoPath);
if (cfg == null) { UnityEngine.Debug.Log("SO 없음"); return; }
// ① 풀 머티리얼 복사본
UnityEngine.Material grassSrc = null;
for (int i = 0; i < cfg.scatter.Length; i++)
if (cfg.scatter[i] != null && cfg.scatter[i].label.Contains("풀")) grassSrc = cfg.scatter[i].material;
if (grassSrc == null) { UnityEngine.Debug.Log("풀 머티리얼 없음"); return; }
var mat = UnityEditor.AssetDatabase.LoadAssetAtPath<UnityEngine.Material>(MatPath);
if (mat == null)
{
mat = new UnityEngine.Material(grassSrc);
mat.name = "Farm_Grass_Demo";
UnityEditor.AssetDatabase.CreateAsset(mat, MatPath);
sb.AppendLine("새 머티리얼 " + MatPath + " (원본 " + grassSrc.name + " 복사)");
}
else sb.AppendLine("기존 머티리얼 갱신 " + MatPath);
// 816f 실측 채택값 — 풀 화면색 ≈ 바닥 화면색(데모와 같은 「안 튀는 풀」)
mat.SetColor("_DiffuseColor", Hex("#A6E39F"));
mat.SetColor("_ShadowDiffuseColor", Hex("#95CC8F"));
UnityEditor.EditorUtility.SetDirty(mat);
// ② SO
for (int i = 0; i < cfg.scatter.Length; i++)
{
var s = cfg.scatter[i];
if (s == null) continue;
if (s.label.Contains("풀")) { s.material = mat; s.density = 1.8f; sb.AppendLine("풀: mat→Farm_Grass_Demo · density 2.5→1.8"); }
else if (s.label.Contains("꽃")) { s.density = 1.8f; sb.AppendLine("꽃: density 2.5→1.8 (풀과 같은 층)"); }
}
UnityEditor.EditorUtility.SetDirty(cfg);
UnityEditor.AssetDatabase.SaveAssets();
UnityEditor.AssetDatabase.Refresh();
sb.AppendLine("soilToneEnabled=" + cfg.soilToneEnabled + " soilTint=" + cfg.soilTint + " soilCheckerContrast=" + cfg.soilCheckerContrast);
sb.AppendLine("islandTopMaterial=" + (cfg.islandTopMaterial ? cfg.islandTopMaterial.name : "없음")
+ " _BaseMap=" + (cfg.islandTopMaterial && cfg.islandTopMaterial.GetTexture("_BaseMap")
? cfg.islandTopMaterial.GetTexture("_BaseMap").name : "없음"));
System.IO.File.WriteAllText("AgentScripts/WL816f_BUILD.txt", sb.ToString());
UnityEngine.Debug.Log(sb.ToString());
}
static UnityEngine.Color Hex(string h)
{ UnityEngine.Color c; UnityEngine.ColorUtility.TryParseHtmlString(h, out c); return c; }
}