添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

设置步骤:

  1. 调出Navigation面板:Window -> AI -> Navigation
    在这里插入图片描述
  2. 选择所有环境物体(静止物体),勾选【Navigation Static】,如果是不连接的对象勾选【Navigation OffMesh】
    在这里插入图片描述
  3. 设置环境物体(静止物体)是否能通过,山体、墙设置【Not Walkable】,平面设置【Walkable】
    在这里插入图片描述
  4. 其他数据都调整完成后,可以点击【back】按钮。(圆柱体的半径越小,导航的边缘空白越小)
    在这里插入图片描述
  5. 选择移动物体,添加 Navigation -> Nav Mesh Agent,还有刚体(Rigidbody)
    在这里插入图片描述
  1. 脚本调用navigation组件,必须先引用包: using UnityEngine.AI;
  2. 通过摄像机屏幕点击获取射线对象: Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  3. 射线是否有碰撞对象: Physics.Raycast(ray,out hit, 20) “hit”是射线碰撞的点对象,“20”是射线最远距离
  4. 设置导航组件的终点: nav.SetDestination(hit.point);
public class NavigationTest : MonoBehaviour
    //先引用UnityEngine.AI包
    private NavMeshAgent nav;
    // Start is called before the first frame update
    void Start()
        //获取导航组件
        nav = GetComponent<NavMeshAgent>();
    // Update is called once per frame
    void Update()
        //判断用户是否按鼠标左键
        if (Input.GetButtonDown("Fire1"))
            //通过摄像机屏幕点击获取射线对象
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            //碰撞对象变量
            RaycastHit hit;
            //判断射线是否有碰撞对象,射线长度限制为20
            if(Physics.Raycast(ray,out hit, 20))
                //设置导航组件的终点,有了终点导航就会指引物体移动
                nav.SetDestination(hit.point);

讲解Area用法:https://blog.csdn.net/shenqiankk/article/details/100145696

4.在add component中添加Nav Mesh Agent(导航网格代理) 这里将Stopping Distance的值修改为0.5。如果使用默认值0,则最后圆柱体会与正方体重合在一起。 5.附加AI脚本给圆柱体 using System.Collections; using System.Collections.Generic; using UnityEng 这个下面会有bake的选项,当你在scene里的物品设置成static的标签之后 也就是下面的这个navigationstatic,点亮了之后当前的这个预制体,然后在navigation里点击bake,再点击bake里的bake,程序就会自动的把设置成 Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往​中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。 Unity 3D导航系统() Unity 3D Navigation导航)是用于实现动态物体自动寻路的一种技术,它将游戏场景中复杂的结构关系简化为带有一定信息的网格,并在这些网格的基础上通过一系列相应的计算来实现自动寻路。 过去,游戏开发者必须自己打造寻路系统,特别是在基于节点的寻路系统中,必须手动地在 AI 使用的点之间进行导航,因此基于节点系统的寻路非常烦琐。 Unity 3D 不仅具有导航功能,还使用了导航网格(navigation meshes),这比手动放置节点更有效率而且更流畅。 更重要的是, 当打开别人的项目或者自己的项目在其他电脑上打开时,VS中可能会出现找不到Unity库的问题,这往往是由于不同电脑中Unity安装目录不相同导致的。会出现下图所示的情况:打开某个类后也会出现找不到引用类的情况,如要解决这个问题就得让VS能正确找到每个引用的位置,可以有3种方法:一、手动在VS中添加引用如下图所示,首先得找到dll文件所在的位置,才能导入。这种方式比较繁琐。二、Unity中设置如下图所... 点击windows AI Navigation Object窗口可以选择让物体成为Navigation Static 然后选择这个Navigation Area成为可行走的或者不可行走的 选择的时候可以选择是否把子物体也变成Navigation Static这里我选择NO 可以为人物设置最大爬坡高度 高于这个坡度的范围是不能爬的 对于物体来说选择Obstacle让他成为障碍物选择Capsule使用裁剪模式裁剪边界BOX就是一个盒子大小 Unity Runtime NavMesh(运行时导航)总结,实现AI可以导航到墙壁上。*要求版本5.6以上。 官方教程:Live Session: Runtime NavMesh Generation 使用插件:NavMeshComponents   在5.6版本之前,Unity自带的导航烘培场景需要在编辑时烘培(非运行时)。在5.6及其以后版本就可以实现运行时烘培场景,实现实时导航。而 Agents:设置人物的宽窄,以及可以爬坡的角度大小 Object:先选中要设置的对象,勾选Navigation Static(也可以在Inspector窗口的Static选)设置walkable可行区域或者其他 Bake:根据需要调整参数,点击Bake确定,即设置成功 (小任务:根据上面的方法把树设置为 not walkable) 二、给人物添加自动导航 1、点击人物,Inspector窗口Add Component->N Unity Navigation详解前言Navigation功能 从事unity相关行业以来始终看不清自己的路该怎么走,到今天才明白不需要花时间去迷茫,只管努力莫问前程。从今天开始每天写一点小东西,记录与整理自己走过的路,也一边寻找自己的路。便从unity的自动寻路Navigation开始吧。 Navigation功能 (1)烘焙路径 选中地面物体与障碍物,选中物体Static,如下图所示: 下一步如下图步骤调出Navigation面板: 在Navigation面板中选择Bake选项,如无特殊参数