这个问题只涉及Unity游戏引擎。
下面是一个视觉示例,展示了所谓的Unity“sprite”(Unity Sprite类),它是一个薄的3D对象。 AABB指的是绿色线所示。在Unity中,通过.bounds(doco)可以获取gpu上的实时AABB。如果对CG不熟悉,可参考AABB解释。
(注意,在Unity中,“local”(doco,doco)表示:在父对象的四元数中;“world”表示在场景对象的四元数中。)
现在!对于任何正在阅读的Unity工程师:
通常在Unity中,当你想要获取Unity Bounds时,需要有一个可见的对象。
如果您想要它们在世界空间中,
如果您想要它们在本地空间中,
这是 Unity 的基础知识,您会经常使用。然而,对于新的精灵,也就是
(实际上,您可以获取.triangles,但从那里重新构建绕组和大小将是非常费力的。)
那么,您如何获得一个精灵的本地Unity Bounds?
(请注意,
下面是一个视觉示例,展示了所谓的Unity“sprite”(Unity Sprite类),它是一个薄的3D对象。 AABB指的是绿色线所示。在Unity中,通过.bounds(doco)可以获取gpu上的实时AABB。如果对CG不熟悉,可参考AABB解释。
(注意,在Unity中,“local”(doco,doco)表示:在父对象的四元数中;“world”表示在场景对象的四元数中。)
现在!对于任何正在阅读的Unity工程师:
通常在Unity中,当你想要获取Unity Bounds时,需要有一个可见的对象。
如果您想要它们在世界空间中,
renderer.bounds
返回世界空间中的Unity Bounds。如果您想要它们在本地空间中,
mesh.bounds
返回本地空间中的Unity Bounds。这是 Unity 的基础知识,您会经常使用。然而,对于新的精灵,也就是
SpriteRenderer
,据我所知,没有真正的访问网格。(实际上,您可以获取.triangles,但从那里重新构建绕组和大小将是非常费力的。)
那么,您如何获得一个精灵的本地Unity Bounds?
(请注意,
sprite.bounds
本身只是相同的 renderer.bounds
,这并没有帮助。)