0x00
两种方法,用于调试,还是用来在游戏中显示。
0x01 测试场合
为了一些测试目的,如判断 AI 的移动路径,是否在目标的视野范围以内等等,但这些用来测试可视化的表示,我并不希望在最终的展示场景出现,而 Unity 提供了这样的用来测试的方法,通过 Debug模块,还可以通过参数设置线的可见距离,以及是否开启深度测试等:
Debug.DrawLine(pos1, pos2, color); // 绘制从点 pos1 到 pos2 的一条直线
Debug.DrawRay(pos1, dir, color) // 绘制从 pos1 点开始,沿 dir 方向的射线
但是在 Debug 模块中,只能在场景视窗中绘制直线。
为了弥补这点,可以使用放在特殊文件夹 /Editor 中继承自 Editor 的代码,通过 Handles API 来自定义场景视图中的 3D GUI 以及绘制操作,参考下面一段代码,实现了图上的绘制功能。
usin