在Unity3D中使用Farseer/Box2D的DebugDraw的最佳方法?

在Unity3D中使用Farseer/Box2D的DebugDraw的最佳方法?,unity3d,box2d,Unity3d,Box2d,Box2D/Farseer 2D physics有一个有用的组件,它使用基本体线、多边形、填充和颜色绘制物理世界的简单表示。下面是一个例子: 在Unity3D中实现这一点的最佳方法是什么?有没有一种简单的方法可以使用填充、线、点等渲染多边形。?如果是这样,我可以用Unity的API实现DebugDraw的接口,但是我很难找到如何用Unity实现像这样的基本渲染 我知道它将在3D空间中,但我只会将一个轴归零,并将其基本用作2D。如果你的意思是实际上只是在SceneView中显示的调试框,而不是在G

Box2D/Farseer 2D physics有一个有用的组件,它使用基本体线、多边形、填充和颜色绘制物理世界的简单表示。下面是一个例子:

在Unity3D中实现这一点的最佳方法是什么?有没有一种简单的方法可以使用填充、线、点等渲染多边形。?如果是这样,我可以用Unity的API实现DebugDraw的接口,但是我很难找到如何用Unity实现像这样的基本渲染


我知道它将在3D空间中,但我只会将一个轴归零,并将其基本用作2D。

如果你的意思是实际上只是在SceneView中显示的调试框,而不是在GameView中,你可以使用它

虚空小发明 { //存储原始gizmo颜色 var color=Gizmos.color; //存储原始矩阵 var矩阵=Gizmos.matrix; //将gizmo设置为局部空间 Gizmos.matrix=transform.localToWorldMatrix; //在变换位置绘制黄色立方体 Gizmos.color=color.yellow; //此处设置比例,例如,对于几乎2d的长方体,只需使用非常小的z值即可 Gizmos.DrawWireCubetransform.position,新矢量30.5f、0.2f、0.001f; //恢复矩阵 Gizmos.matrix=矩阵; //恢复颜色 Gizmos.color=颜色; } 只有在选择游戏对象时,才能使用OnDrawGizmosSelected显示Gizmo

您还可以通过使长方体大小超过检查器来扩展此功能

[SerializeField]专用矢量3_-boxScale; 和使用

Gizmos.DrawWireCubetransform.position,_-boxScale;