加载中...

unity---寻路导航

寻路导航

1. 简单的寻路

  1. 先搭建出类似下面的结构
    image

  2. 将你想作为障碍的物体放入一个空物体中
    image

  3. 进入空物体点击Static,仅勾选 Navigation Static 即可
    image

  4. 依次点击 Window->AI->Navigation,出现如下面板
    image

  5. 默认设置,点击烘培bake
    image

  6. 蓝色区域为可以通行的区域
    image

  7. 红色物体挂载以下组件
    image

  8. 再挂载如下脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Nev0906 : MonoBehaviour
{//鼠标点击某处,物体自动前往鼠标指定地点
    // Start is called before the first frame update
    public NavMeshAgent nma;
    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButton(0)){
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit[] hits =Physics.RaycastAll(ray);
            foreach(var hit in hits){
                string name  = hit.collider.gameObject.name;
                    nma.SetDestination(hit.point);
            }
        }
    }
}

或者是这个简单脚本,自动前往目标物体
image

大致步骤

image

坡度烘培

image

关键在于角度的设置image

选路

木头物体走木质桥,另一个物体走另一个桥
image

  1. 先搭建相应场景,并且进行简单路径的一些操作
  2. 给两个桥取一下名字
    image
  3. 在这个区域写下相应名字
    image
  4. 在物体组件这选择他能够行走的区域
    image
  5. 选择桥的Navigation Area(不选的话默认为Walkable)
    image

即可分路径行走

小小补充

选择两个物体然后,勾选Generate OffMeshLinks 自动链接
image

添加障碍物组件,设置一定的高度后,物体就无法走过
image
image
脚本控制一下障碍物

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;


public class ObstateTest : MonoBehaviour
{
    // Start is called before the first frame update
    NavMeshObstacle _obstacle;
    void Start()
    {
        _obstacle=this.GetComponent<NavMeshObstacle>();
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButtonDown(0)){
            _obstacle.enabled=false;
            this.gameObject.GetComponent<Renderer>().material.color=Color.green;
        }
        if(Input.GetMouseButtonUp(0)){
            _obstacle.enabled=true;
            this.gameObject.GetComponent<Renderer>().material.color=Color.blue;
        }
    }
}

posted @ 2022-04-27 21:11  lxp_blog  阅读(244)  评论(0编辑  收藏  举报