unity3d NavMeshAgent 寻路画线/画路径

时间:2021-07-14 06:00:41

今天在群里看见有个小伙在问Game视图寻路时怎么画线

正好前几天写了个寻路,而且自己也不知道具体怎么在寻路时画线,所以决定帮帮他,自己也好学习一下

在百度查了一下资料,直接搜寻路画路径、寻路画线......

我可不是伸手党,我只是想看看别人是怎么实现的

结果什么都没有搜到!!那就直接搜unity3d 画线吧.....  果然很多资料!!

Debug.DrawLine;使用这个函数只能在 screen 中看见画的线,在 game 中看不见

那我们要怎么在game中画线呢

百度给我答案:LineRenderer(线渲染器)

然后查圣典:http://game.ceeger.com/Script/LineRenderer/LineRenderer.html

怎么用的自己看,我在这里就不多说了

ok,开始敲代码咯

首先我们创建一个空gameobject,然后添加 Line Renderer 组件

属性设置如下图:

unity3d NavMeshAgent 寻路画线/画路径

材质我是随便拖的,无关紧要

这个时候我们双击刚才创建的 gameobject 以在 scene 视图中查看

我们可以看见有一条线出现了,因为我材质的问题,我这里显示的是椭圆形!!脑补一下线的样子吧

我们在组件中设置的两个坐标其实就是两个点,两点一线,就这样生成了线。。。好像是废话

好了,我们开始敲代码吧,组件设置没啥好说的

设置两个变量

     public Transform line;//就是我们刚才添加的 gameobject
private LineRenderer _lineRenderer;//储存 gameobject 的 LineRenderer 组件

在 Start 方法中初始化 _lineRenderer

     void Start ()
{
_lineRenderer = line.GetComponent<LineRenderer>();
}

最后我们在寻路后画线

                 Vector3[] _path = Nav.path.corners;//储存路径
_lineRenderer.SetVertexCount(_path.Length);//设置线段数
for (int i = ; i < _path.Length; i++)
{
_lineRenderer.SetPosition(i, _path[i]);//设置线段顶点坐标
}

就这么简单,看看代码,看不懂先去看我上文提到的手册

由于我的项目中有很多无关寻路画线的代码,而且以上代码比较简单,我就不贴出完整代码了

下面是测试结果:

unity3d NavMeshAgent 寻路画线/画路径

unity3d NavMeshAgent 寻路画线/画路径

本文链接:http://www.cnblogs.com/shenggege/p/4129405.html