Box2D / Farseer 2D物理学有一个有用的组件,它使用图元(线,多边形,填充,颜色)绘制物理学世界的简单表示。这是一个示例:
在Unity3D中完成此操作的最佳方法是什么?有没有一种简单的方法可以渲染带有填充,线,点等的多边形?如果是这样,我可以使用Unity的API来实现DebugDraw的接口,但是我很难找到如何使用Unity来实现这种原始渲染的方法。
我知道它会在3D空间中,但我只会将一个轴归零,并基本上将其用作2D。
答案 0 :(得分:1)
如果您的意思是实际上只是在SceneView
的{{1}}中不是中显示了 debug 框,则可以使用Gizmos.DrawWireCube
GameView
仅当选择了GameObject时,您才能使用void OnDrawGizmos()
{
//store original gizmo color
var color = Gizmos.color;
// store original matrix
var matrix = Gizmos.matrix;
// set gizmo to local space
Gizmos.matrix = transform.localToWorldMatrix;
// Draw a yellow cube at the transform position
Gizmos.color = Color.yellow;
// here set the scale e.g. for a "almost" 2d box simply use a very small z value
Gizmos.DrawWireCube(transform.position, new Vector3(0.5f, 0.2f, 0.001f));
// restor matrix
Gizmos.matrix = matrix;
// restore color
Gizmos.color = color;
}
来显示Gizmo
您还可以通过将框的大小扩大到检查器上来扩展它
OnDrawGizmosSelected
并使用
[SerializeField] private Vector3 _boxScale;