打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unity 寻路并显示预行走路线
                先看下面的演示效果:


里面主要用到Unity的自带网格寻路(NavMesh)和LineRanderer,核心思想是获取unity 的网格寻路的点,再把这些点赋予LineRanderer;

相关代码如下:

using UnityEngine;
using System.Collections;


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


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

// Update is called once per frame
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);
        }         
    }
}

1.需要在Resources下放置一个名字为“LineRender”预制体,上面挂有Linerenderer的组件

2.cube身上要添加NavMeshAgent这个组件

3.脚本挂相机上

额外补充:如果要时刻创建障碍物,或者说场景里有个非静态的带刚体的物体,角色移动过去想要绕开他,如何做呢?

答案是在该物体上天剑NavMeshObstacle就可以了: 

记得把Carve勾上


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[原]<Unity3D>Unity3D中LineRenderer的使用
如何在unity3d中查找子对象
[Unity
Unity 3D AI: NavMesh Navigation
开发实例:Unity集成Leap Motion
unity 如何隐藏子物体
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服