简单图解Bounds

Bounds是AABB包围盒的数据表示,AABB包围盒是包含对象,且边平行于坐标轴的最小六面体,如下图所示:
  注意标注的Bounds的主要属性
 
而我们获得Bounds的主要途径有三种:
Render.bounds
Collider.bounds(Collider2D.bounds类似,就不赘述)
Mesh.bounds
 
以下是这三种bounds跟随物体transform变化而变化的动态图:
红色框:Render.bounds
绿色框:Collider.bounds(为了防止重合,人为的将Collider加大了一点)
蓝色框:Mesh.bounds
 
可以发现,随着对象的缩放或者旋转变化,Render.bounds和Collider.bounds都相应的扩大或缩小以完全包含其关联的对象,而Mesh.bounds则不会。
Mesh.bounds的值是相对于其自身坐标系的,如果我们将其8个点都转到世界坐标系的话:
 
可以看到,Mesh.bounds的8个点转到世界坐标系后正好是其包围的立方体的8个点。所以在某些情况下,可以利用这个特性获得物体的真实尺寸
posted @ 2016-10-22 12:46  Zion.Neo  阅读(1721)  评论(0编辑  收藏  举报