unity3d烘焙导航网格_unity 导航网格烘焙 - CSDN
  • 1、Agent Radius(物体的半径)物体半径越小,生成网格面积越大。 2、Agent Height:物体的高度 3、Max Slope 斜坡斜度(最大60°),如果大于设定值就不会生成网格。 4、Step Height 台阶高度 ps这个高度不可以...

    在window-》Navigation打开Bake
    这里写图片描述
    1、Agent Radius(物体的半径)物体半径越小,生成网格面积越大。
    这里写图片描述
    2、Agent Height:物体的高度
    这里写图片描述
    3、Max Slope 斜坡斜度(最大60°),如果大于设定值就不会生成网格。
    4、Step Height 台阶高度 ps这个高度不可以大于人的高度。
    5、Drop Height 允许的最大下落距离。
    6、Jump Distance 允许的最大跳跃距离。
    这里写图片描述
    ps:使用5 6 两个属性需要勾选Object》Generate OffMeshLinks
    7 、Advanced 高度参数调节
    》Manual Voxel Size 选中手动输入像素值
    》Voxel Size 自动获取像素值为Agent Radius的1/3。
    》Min Region Area 网格面积小于这个值,不会生成。
    》Height Mesh 选中会自动保存高度信息,会增加性能和存储空间的消耗。

    展开全文
  • unity中为我们提供了很实用的寻路功能,接下来我们就看看这个寻路功能怎么事现    一、在window中打开Navigation窗口准备烘焙地形 二、在inspector界面中将场景中的障碍物勾选为静态( navigation static) ...

    unity中为我们提供了很实用的寻路功能,接下来我们就看看这个寻路功能怎么事现

     

      一、在window中打开Navigation窗口准备烘焙地形

    二、在inspector界面中将场景中的障碍物勾选为静态( navigation static)

    三、在Navigation窗口中进行导航网个的烘焙

    Navigation中的主要参数
        //Areas(区域):相当于障碍物的标签,可以在寻路物体身上的Navmeshagent组件中的AreaMask中屏蔽某一区域
        //Bake(烘焙):生成指定的寻路网格
            //Agent Radius: 寻路物体的半径
            //Agent Heigh: 驯鹿物体的高度
            //Max Slope: 寻路物体可前进的最大坡度(最大为60度)
            //Step Heigh: 寻路物体前进可跨过的最大高度(最大不能超过寻路物体的身高)
            //Drop Heigh: 寻路物体下落的最大高度
            //Jump Distance 驯鹿物体跳跃的最大距离
       //Object(对象,障碍物):设置指定游戏物体的寻路烘焙属性
       //Navigation Static:设置当前游戏物体为寻路静态状态
       //Generate offMeshLinks:是否生成网格连接,如果勾选,网格之间会指定跳点烘焙

       //Navigation Area:设置当前游戏物体的导航区域

    设置完成后,直接点击Bake场景中会生成导航网格

    蓝色部分是导航代理可以行走的部分

    四、生成导航网格后,在需要自动导航的物体上添加NavMeshAgent组件

    其中几个主要参数

    Agent Type :导航代理的类型,这个参数下一节会用到

    Base Offset:导航代理和当前游戏物体位置的差值

    speed:移动速度

    Angular Speed:转向速度

    Acceleration:移动加速度

    Radiuse: 导航代理的半径

    Heigh:导航代理的高度

     

    注意:需要导航是的游戏物体上不要同时出现刚体和NavmeshAgent两个组件,他们都会作用于物体的位置信息,可能会发生冲突导致导航失败

    五、就接下来在代码中动态设置导航的终点

    使用NavMeshAgent类中的函数SetDestination(Vector3 Target);函数来指定导航的终点就可以了

     

    展开全文
  • unity3d 的NavMesh导航系统是一种用于动态物体自动寻路的技术。动态物体就是在游戏中可以运动的物体,一般是有生命的游戏角色,比如玩家英雄、怪物等。很多rpg游戏、实时对战游戏都是使用导航寻路,鼠标右击地图上的...

    什么是导航网格系统?

    前言:作为刚开始学习unity3d的菜鸟,将学习中觉得值得记笔记的地方分享给大家一起探讨,文中有理解错误的,勿怪哈!
    unity3d 的NavMesh导航系统是一种用于动态物体自动寻路的技术。动态物体就是在游戏中可以运动的物体,一般是有生命的游戏角色,比如玩家英雄、怪物等。很多rpg游戏、实时对战游戏都是使用导航寻路,鼠标右击地图上的某点,游戏角色自动找出到达该地点的最佳路线,然后以一定速度前往该目的地,这就是导航寻路。静态物体就是游戏地图中位置和形状稳定的、可以形成导航网格的物体,常见的有地形、建筑物等。
    unity3d的NavMesh导航系统的原理是根据A算法演变而来的,A算法是针对2D地图生成导航网格的算法,简单的说是把2D地形分成一个个矩形网格,然后按照广度优先算法,从起始点格子向周围的各自一层层探测,直到探测到目标点所在网格,比如
    在这里插入图片描述
    从A点导航到B点,首先将地图分成矩形网格,然后从A格子开始向周围的8个格子依次探索,如果周围的8个格子没有找到目标点B,则依次探索8个格子周围未探索的格子,直到找到B点所在格子,然后生成从A点到B点的路线。具体A算法可以自行查找资料。
    unity3d的NavMesh所使用的导航网格算法源于A
    算法,只不过为了扩展到三维世界的寻路,NavMesh将地图分成三角形网格(梯形也是由三角形组成),然后也使用广度优先算法从起始三角形一层层向外遍历,直到找到目标点所在的三角形,最后生成导航路线。
    比如我们搭建一个简单场景
    在这里插入图片描述
    地面上放置4个立方体,地形plane和4个cube的static都选中Navigation Static,表示这5个对象都参与导航网格的烘焙,其中黑色的两个cube的Navgation Area选项设置为Not Walkable,表示障碍物,障碍物所在区域无法生成行走路线。其余的两个白色cube和地面都设置为Walkable,表示可以通行的区域。我们点击Bake选项卡右下角的Bake按钮对场景进行导航网格的烘焙,可以看到生成的导航网格。
    在这里插入图片描述
    如图,凡是可以通行的地方都生成了蓝色的导航网格。这张导航网格保存后将作为整个游戏场景的导航网格,在开始游戏后,挂载Nav Mesh Agent组件的游戏角色在使用导航寻路时会按照这张保存的导航网格进行寻路。注意,导航网格是提前烘焙好的静态的地图,即使在游戏中Navgation Static对象发生了变化(移动、变形、毁灭),导航网格也不变,比如事先烘焙一座桥为可行进的导航网格,在游戏中桥被毁坏了,使用导航时游戏角色依然认为桥是存在的,导航路线不变。如果游戏中出现非Navgation Static的对象挡住了导航网格,游戏角色依然认为没有阻挡,不会改变导航路线,只不过行进的路上会被挂载碰撞体的对象所阻挡。
    接下来编辑Nav Mesh Agent组件,在场景中放置一个绿球代表玩家hero,放置一个小红球代表目的地。给hero球加上Nav Mesh Agent组件,然后编写脚本TestNavMesh.cs来开启导航系统的使用。代码如下:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.AI;
    
    public class TestNavMesh : MonoBehaviour
    {
        public Transform target;
        void Start()
        {
            if(target != null)
            {
                GetComponent<NavMeshAgent>().destination = target.position;
            }
        }
    }
    

    将TestNavMesh.cs放到hero球上作为脚本组件,然后将target球赋予target变量。接着运行游戏,即可看到绿球主动走到红球的位置,过程中虽有障碍物,但是导航路线自动避开了障碍物。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 导航系统又称寻路系统,在siki学院的视频教程中,我们将通过介绍内置的导航系统来深入学习Unity3D的人工智能。我将展示如何在场景找到最短的路径以及避开障碍。 第一步:要对场景进行网格烘焙。选择window-...

    导航系统又称寻路系统,在siki学院的视频教程中,我们将通过介绍内置的导航系统来深入学习Unity3D的人工智能。我将展示如何在场景找到最短的路径以及避开障碍。
    第一步:要对场景进行网格烘焙。选择window-Navigation

    NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。。导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点。

    下面通过一个简单的案例来介绍NavMesh的应用:

    并在Inspector面板中选中为静态(static)下拉选项的Navigation Static,如下图。
    在这里插入图片描述

    2.依次选择 Navigation-Bake ,打开后面板如下。
    在这里插入图片描述

    单击该面板右下角的Bake按钮,即可生成导航网格,蓝色为可行走区域。
    (如何不想烘培石头上方为可行走可以在Object中选择Not walk able)

    3.下面就可以让一个运动体根据一个导航网格运动到目标位置。

    把游戏人物创建一个capsule(胶囊)运动体,为该胶囊挂在一个Nav Mesh Agent(Component - Navigation - Nav Mesh Agent);最后写一个脚本就可以实现自动寻路了。脚本如下:

    using UnityEngine.AI;
    
    public class Hero:MonoBehaviour{
        
        public NavMeshAgent agent;
        
        void Update(){
            if(Input.GetMouseButtonDown(0)){
            Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if(Physics.Raycast(ray,out hit)){
            agent.SetDestination(hit.point);
            }
            }
        }
    }
    

    脚本新建完成后挂载到胶囊体上,然后点击鼠标在场景内就能到达目标位置了。

    这样一个简单的自动寻路就完成了,如果要更精细的寻路,或要实现上坡,钻"桥洞"等,可根据下面介绍的相关参数进行调节。

    下面介绍 Navigation 组件和 Nav Mesh Agent 组件的相关参数。
    Navigation

    Object:物体参数面板
    Navigation Static:勾选后表示该对象参与导航网格的烘培。
    OffMeshLink Generation:勾选后可跳跃(Jump)导航网格和下落(Drop)。
    Bake:烘培参数面板
    Radius:具有代表性的物体半径,半径越小生成的网格面积越大。
    Height:具有代表性的物体的高度。
    Max Slope:斜坡的坡度。
    Ste Height:台阶高度。
    Drop Height:允许最大的下落距离。
    Jump Distance:允许最大的跳跃距离。
    Min Region Area:网格面积小于该值则不生成导航网格。
    Width Inaccuracy:允许最大宽度的误差。
    Height Inaccuracy:允许最大高度的误差。
    Height Mesh:勾选后会保存高度信息,同时会消耗一些性能和存储空间。
    Nav Mesh Agent:导航组建参数面板

    Radius:物体的半径
    Speed:物体的行进最大速度
    Acceleration:物体的行进加速度
    Augular Speed:行进过程中转向时的角速度。
    Stopping Distance:离目标距离还有多远时停止。
    Auto Traverse Off Mesh Link:是否采用默认方式度过链接路径。
    Auto Repath:在行进某些原因中断后是否重新开始寻路。
    Height:物体的高度。
    Base Offset:碰撞模型和实体模型之间的垂直偏移量。
    Obstacle Avoidance Type:障碍躲避的的表现登记,None选项为不躲避障碍,另外等级越高,躲避效果越好,同时消耗的性能越多。
    Avoidance Priority:躲避优先级。
    NavMesh Walkable:该物体可以行进的网格层掩码。

    展开全文
  • 打开Navigation进行navmesh的烘焙 上图大红框中是我们可以设置的配置的:我们可以设置agent(我们需要进行寻路的对象)的半径和高度还有可以爬坡的倾斜度,比如我们在刚刚设置的斜坡角度大于45°,那么我们的agent...
  • 为什么要用导航网格系统? 前言:作为刚开始学习unity3d的菜鸟,将学习中觉得值得记笔记的地方分享给大家一起探讨,文中有理解错误的,勿怪哈! 我相信,许多同学刚开始接触unity3d,熟悉基本操作之后,都像我一样...
  • 很简单可以指定不同的代理信息烘焙多张寻路网格,让不同尺寸的游戏物体都拥有一张属于自己的寻路网格,这里需要用到一个官方的组件,但是unity中没有包含,需要自己下载并导入——NavMeshComponen...
  • Nav Mesh Agent 效果图 创建地面. 1.1 在Hierarchy下创建一个空的游戏对象命名为Ground: 右键 –&...重命名为Ground.... 3D Object –&amp;amp;amp;amp;gt; Plane, 创建一个之后进行复
  • 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D...一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了。 在导航 (Navigation) 窗口中(窗口 (Window)->导航
  • 1.烘焙出地形数据,导航数据,区分哪些是路径,哪些是障碍物 2.给要寻路的角色添加寻路的组件,加好了以后就会有速度和目的地之类的参数设置 3.只要设置好目的地,角色就会根据烘焙好的地图自己走过去 4.要实现鼠标...
  • 准备场景:一个Plane,作为地面;...打开导航选项卡: Mac:Window——AI——Navigation Windows:Window——Navigation 选择Plane,然后打开Navigation选项卡, Navigation Area里面的...
  • Unity3D 导航系统

    2020-07-03 21:37:58
    打开导航页面 Window ==》Navigation Agents 可以设置多种导航类型 AgentTypes:设置不同的导航者类型 Name:导航者的名字 Radius:导航碰撞体的半径 Height:导航碰撞体的高度 SetpHeight:导航者的脚步高度 ...
  • 静态烘焙: 动态障碍物,大小要和包围盒大小一致 动态烘焙: 官方最新的 https://github.com/luoyikun/NavMeshComponents 1.可以实现烘焙信息跟随预制体 2.动态烘焙:以玩家为中心,走哪烘哪 管理器上挂载 ...
  • 烘焙路面 将带有 MeshRenderer和 Collider组件的地形设置为 Navigation Static ...点击Bake按钮,即可烘焙出路面导航数据,会生成与场景同名的一个文件夹,里面有个NavMesh.asset文件,就是对应的导航资源文件 ...
  • 先看效果,下面两张图,第一张是unity烘焙好的网格,第二张是导出的文件,第二张因为数字长和宽不相等,所以形状被压缩了下。 一、实现 1、这个方法做的功能就是将navmesh网格的顶点和顶点索引导出并封装成...
  • 参考文章:Unity3D深入浅出 - 导航网格自动寻路(Navigation Mesh) http://blog.csdn.net/yuxikuo_1/article/details/44974739 unity3D——自带寻路Navmesh入门教程(二) ... Unity3D自动寻路系统Navig
  • Unity导航网格代理NavMeshAgent 用法 将场景内所有障碍物(地形、树木、房屋等)标记为Navigation static,以使其参与Unity导航网格烘焙过程。 在Unity中打开Windows–>Navigation面板,选择bake选项,设置好...
  • Navigation Static:选中该复选框,则表示该游戏对象将参与导航网格烘焙。 Generate OffMeshLinks:选中该复选框,可以自动根据Drop Height(下落高度)和Jump Distance(跳跃距离)的参数设置用关系线来连接分离...
  • 大多数端游页游都会使用A*...现在学习的是Unity内置的导航系统,并结合案例进行讲解。开发版本:Unity 2017.1.1f1、VS 2017 适合人群:初学Unity者一.导航系统定义在Unity手册中是这样定义的:The Navigation Syste...
1 2 3 4 5 ... 15
收藏数 296
精华内容 118
关键字:

unity3d烘焙导航网格