前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity-BattleStar丨拓展:Unity实现自动寻路划线

Unity-BattleStar丨拓展:Unity实现自动寻路划线

作者头像
星河造梦坊官方
发布2024-08-14 16:41:32
730
发布2024-08-14 16:41:32
举报
文章被收录于专栏:星河造梦坊专栏

效果展示:

思路:

1、实现自动寻路功能

2、实现划线功能

一、实现自动寻路功能

1、按上图所示,完成场景布置

2、按本博客:完成:实践过程 1烘焙路径

二、实现划线功能

1、创建空物体LineRender,添加LineRender组件,并赋值材质球。

将其做成预制体放到Resources文件夹下,删掉层级面板的LineRender

2、将下方代码挂在MainCamera上,并把设置了NavMeshAgent的Cube赋值进去

3、Enjoy~

代码语言:javascript
复制
using UnityEngine;
using UnityEngine.AI;

public class CubeMove : MonoBehaviour
{
    NavMeshAgent _Nav;
    LineRenderer _LineRenderer;
    RaycastHit hit;
    public GameObject Cube;

    void Start()
    {
        _Nav = Cube.transform.GetComponent<NavMeshAgent>();
        GameObject r = Resources.Load("LineRender") as GameObject;
        GameObject r1 = Instantiate(r);
        _LineRenderer = r1.transform.GetComponent<LineRenderer>();
        _LineRenderer.SetWidth(0.1f, 0.1f);
        _LineRenderer.SetColors(Color.blue, Color.green);
    }

    void FixedUpdate()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                Debug.DrawLine(ray.origin, hit.point, Color.red);
                // print(hit.point);                
                _Nav.SetDestination(hit.point);        //NavMeshAgent自带移动方法
                print(_Nav.path.corners.Length);
            }
        }
        if (_Nav.path.corners.Length > 1)                  //时刻检测路线的点,当大于1的时候,把这些点赋予给LineRenderer来绘制出线条
        {
            _LineRenderer.SetVertexCount(_Nav.path.corners.Length);
            _LineRenderer.SetPositions(_Nav.path.corners);
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果展示:
  • 思路:
  • 一、实现自动寻路功能
  • 二、实现划线功能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档