Fat*_*tie 4 sprite unity-game-engine aabb
这个问题只涉及Unity游戏引擎.
这是一个所谓的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,据我所知,没有真正的网格访问权限.
(你实际上可以得到.三角形,但从那里重建绕组和尺寸将是一件非常繁琐的工作.)
那怎么样,你能获得Sprite 的本地 Unity Bounds吗?
(注意它sprite.bounds本身是一样的renderer.bounds,没有帮助.)
我想你在找SpriteRenderer.sprite.bounds.
public class LogBounds : MonoBehaviour {
void OnGUI () {
var r = GetComponent<SpriteRenderer>();
GUILayout.Label("SpriteRenderer.bounds center " + r.bounds.center + " size " + r.bounds.size);
GUILayout.Label("SpriteRenderer.sprite.bounds center " + r.sprite.bounds.center + " size " + r.sprite.bounds.size);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,SpriteRenderer.sprite.bounds的值不会随着变换属性的更改而更改 - 这些值在本地坐标中.
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |