这个问题只涉及 Unity 游戏引擎。
这是一个所谓的 Unity“精灵”(Unity Sprite 类)的视觉示例,它是一个薄 3D 对象。
显示 AABB(绿线)。在 Unity 中,通过.bounds
( doco ) 提供脱离 gpu 的实时 AABB。如果是 CG 新手,请解释 AABB。
(注意,Unity(doco , doco)中的“local”表示:在父对象的四元组中;“world”表示在场景对象的四元组中。)
现在!对于任何阅读的 Unity 工程师:
通常在 Unity 中,使用可见对象时,当您想要获取Unity Bounds时,
如果您希望它们在世界空间中,renderer.bounds
则返回世界空间中的Unity Bounds。
如果您希望它们在本地空间中,mesh.bounds
则返回本地空间中的Unity Bounds。
这是 Unity 的基础,您一直都在这样做。然而。使用新的精灵,也就是说SpriteRenderer
,据我所知,没有真正访问网格。
(你实际上可以得到 .triangles,但是从那里重建绕组和大小会很麻烦。)
那么,如何获得Sprite的本地 Unity Bounds呢?
(请注意,sprite.bounds
它本身就是一样的renderer.bounds
,这无济于事。)