57 lines
3.0 KiB
C#
57 lines
3.0 KiB
C#
|
|
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();
|
||
|
|
}
|
||
|
|
}
|