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 @   lxp_blog  阅读(250)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
主题色彩