Files
GeoData/scripts_unity/Editor/GeoBoundsDebug.cs

36 lines
1.1 KiB
C#

using UnityEditor;
using UnityEngine;
public static class GeoBoundsDebug
{
[MenuItem("Tools/Geo/Print Selected Mesh Bounds")]
public static void PrintSelectedMeshBounds()
{
foreach (var go in Selection.gameObjects)
{
var mf = go.GetComponent<MeshFilter>();
if (mf == null || mf.sharedMesh == null)
{
Debug.Log($"{go.name}: no MeshFilter/mesh");
continue;
}
var mesh = mf.sharedMesh;
var b = mesh.bounds;
// Mesh bounds are in local mesh space
var centerWorld = go.transform.TransformPoint(b.center);
// Approximate size in world space (ignores rotation, good enough for diagnosis)
var lossy = go.transform.lossyScale;
var sizeWorld = new Vector3(
Mathf.Abs(b.size.x * lossy.x),
Mathf.Abs(b.size.y * lossy.y),
Mathf.Abs(b.size.z * lossy.z)
);
Debug.Log($"{go.name}: worldCenter={centerWorld}, worldSize={sizeWorld}");
}
}
}