Project_WL/AgentScripts/WL814q_Probe2.cs

57 lines
3.0 KiB
C#
Raw Normal View History

public static class WL814q_Probe2
{
public static string Run()
{
var sb = new System.Text.StringBuilder();
string[] paths = {
"Assets/WL/Look/Arena/Terrain/WL_ArenaTerrain.asset",
"Assets/3DPixelArtEnvironment/Demo/Demo_Terrain.asset"
};
foreach (var p in paths)
{
var td = UnityEditor.AssetDatabase.LoadAssetAtPath<UnityEngine.TerrainData>(p);
if (td == null) { sb.AppendLine(p + " NOT FOUND"); continue; }
sb.AppendLine(p + " layers=" + td.terrainLayers.Length + " alphaRes=" + td.alphamapResolution
+ " alphaTex=" + td.alphamapTextureCount);
for (int i = 0; i < td.terrainLayers.Length; i++)
sb.AppendLine(" layer[" + i + "] = " + (td.terrainLayers[i] != null ? td.terrainLayers[i].name : "null"));
var a = td.GetAlphamaps(0, 0, td.alphamapWidth, td.alphamapHeight);
int n = a.GetLength(2);
var mx = new float[n]; var sum = new float[n];
for (int y = 0; y < a.GetLength(0); y++)
for (int x = 0; x < a.GetLength(1); x++)
for (int c = 0; c < n; c++) { if (a[y, x, c] > mx[c]) mx[c] = a[y, x, c]; sum[c] += a[y, x, c]; }
for (int c = 0; c < n; c++)
sb.AppendLine(string.Format(" ch{0} max={1:F3} mean={2:F3}", c, mx[c], sum[c] / (a.GetLength(0) * a.GetLength(1))));
// 중앙(아레나 안) 샘플
if (p.Contains("Arena"))
{
int cx = td.alphamapWidth / 2, cy = td.alphamapHeight / 2;
sb.AppendLine(string.Format(" center px: ch0={0:F3} ch1={1:F3}", a[cy, cx, 0], a[cy, cx, 1]));
}
}
var m = UnityEditor.AssetDatabase.LoadAssetAtPath<UnityEngine.Material>(
"Assets/3DPixelArtEnvironment/Materials/Terrain.mat");
if (m != null && m.shader != null)
{
sb.AppendLine("Terrain.mat shader=" + m.shader.name + " props=" + m.shader.GetPropertyCount());
for (int i = 0; i < m.shader.GetPropertyCount(); i++)
{
string pn = m.shader.GetPropertyName(i);
if (pn.Contains("Control") || pn.Contains("Splat") || pn.Contains("Terrain") || pn.Contains("Layer")
|| pn.Contains("Highlight") || pn.Contains("Shadow"))
sb.AppendLine(" " + pn + " : " + m.shader.GetPropertyType(i));
}
}
// 우리 터레인 GO 상태
var t = UnityEngine.Object.FindFirstObjectByType<UnityEngine.Terrain>();
if (t != null)
{
sb.AppendLine("scene Terrain mat=" + (t.materialTemplate != null ? t.materialTemplate.name : "null")
+ " shader=" + (t.materialTemplate != null && t.materialTemplate.shader != null ? t.materialTemplate.shader.name : "?")
+ " drawInstanced=" + t.drawInstanced + " basemapDist=" + t.basemapDistance);
}
return sb.ToString();
}
}