zoukankan      html  css  js  c++  java
  • unity3d NavMeshAgent 寻路画线/画路径

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

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

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

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

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

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

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

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

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

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

    ok,开始敲代码咯

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

    属性设置如下图:

     

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

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

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

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

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

    设置两个变量

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

    在 Start 方法中初始化 _lineRenderer

    1     void Start () 
    2     {
    3         _lineRenderer = line.GetComponent<LineRenderer>();
    4     }


    最后我们在寻路后画线

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

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

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

    下面是测试结果:

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

  • 相关阅读:
    2020-2021-1 20201329 《信息安全专业导论》第十一周学习总结
    python gui
    2020-2021-1 20201329 《信息安全专业导论》第十周学习总结
    2020-2021-1 20201329 《信息安全专业导论》第九周学习总结
    四则运算
    熟悉编程语言
    链表
    网站设计
    使用nmap扫描队友
    熟悉编程语言
  • 原文地址:https://www.cnblogs.com/shenggege/p/4129405.html
Copyright © 2011-2022 走看看