unity3d 网格bake_unity3d 怎么设置目的地后不bake - CSDN
  • 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。  导航网格烘焙 一旦标记完导航...

    导航网格烘焙
    一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了。

    在导航 (Navigation) 窗口中(窗口 (Window)->导航 (Navigation)),转到烘焙 (Bake) 选项卡(右上角),然后点击“烘焙”按钮(右下角)。



    导航烘焙窗口

    以下是会影响导航网格 (Navmesh) 烘焙的属性:


       
    半径 (Radius) “典型”代理的半径(最好是最小值)。
    高度 (Height)
    “典型”代理的高度(角色通过所需的“空隙”)。
    最大坡度 (Max Slope)
    坡度大于此值的所有表面会予以丢弃。
    台阶高度 (Step height)
    高度差低于台阶高度时,则认为连接至导航网格区域。
    下落高度 (Drop height)
    如果该属性值是正数,则将为高度差小于该值的相邻导航网格表面放置分离网格链接。
    跳跃距离 (Jump distance)
    如果该属性值是正数,则将为水平距离小于该值的相邻导航网格表面放置分离网格链接。
    高级 (Advanced)
    最小区域面积 (Min region area)
    面积小于该阈值的区域将予以丢弃。
    宽度误差 (Width inaccuracy) % 容许的宽度误差
    高度误差 (Height inaccuracy) % 容许的高度误差
    高度网格 (Height mesh) 如果勾选此选项,原始高度信息会存储起来。这会对速度和内存性能造成一定影响。


    请注意,烘焙的导航网格是场景的一部分,代理可以通过该导航网格。要删除导航网格,在烘焙 (Bake) 选项卡中点击清除 (Clear)。

    实现细节
    烘焙导航网格 (Navmesh) 时,它会映射到 XZ 平面中的方格中。可视化方格时,其边框被视为导航网格 (Navmesh) 上的亮蓝色轴对齐线。Unity 在一个场景中最多支持 1024 个方格,每个方格用 1000×100 个体素表示。如果您打算让代理在大区域中导航,请注意导航网格 (Navmesh) 的大小和最终的网格数。



    具有亮蓝色轴对齐线的导航网格显示方格标度

    半径 (Radius) 的默认设置为 0.5,宽度误差 (Width Inaccuracy) 的默认设置为0.16666667 (16.666667%)。默认设置的方格边长可计算为:
    1000 * (2*半径) * 宽度误差 = 1000 * (2*0.5) * 0.16666667 = 166.66667。

    增加宽度误差 (Width Inaccuracy) 将允许容纳更大面积,但会降低导航网格 (Navmesh) 精度。

    例如,如果您的网格有 32 x 32 个方格,则您将拥有 1024 个方格。这意味着,如果您拥有想与导航网格 (Navmesh) 配合使用的真正巨大地形,按照默认设置,该地形面积不得超过 5.333 乘以 5.333 千米(32 * 166.66667 米)

    展开全文
  • 首先:随便搭个地形,有个平台和斜坡,注意斜坡的倾斜程度。 搭出来的样子,然后需要设置它们的Layer和勾选Navigation static 。 打开Navigation进行navmesh的烘焙 ...上图大红框中是我们可以设置的配置的:我们...

    首先:随便搭个地形,有个平台和斜坡,注意斜坡的倾斜程度。
    在这里插入图片描述
    搭出来的样子,然后需要设置它们的Layer和勾选Navigation static 。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    打开Navigation进行navmesh的烘焙
    在这里插入图片描述
    在这里插入图片描述
    上图大红框中是我们可以设置的配置的:我们可以设置agent(我们需要进行寻路的对象)的半径和高度还有可以爬坡的倾斜度,比如我们在刚刚设置的斜坡角度大于45°,那么我们的agent就上不去,还可以设置links的一些属性,links应该是比如有两个平台,可以跳过去的效果。然后点击bake烘焙可以得到下图的烘焙效果,蓝色代表可以寻路的地方。
    在这里插入图片描述
    然后新建一个cylinder做我们的agent用来寻路。
    在这里插入图片描述
    要给它设置添加Nav Mesh Agent组件,然后我还添加了Rigidbody组件,还有一个C#脚本。
    在这里插入图片描述
    代码主要实现了鼠标点击位置然后我们的agent就去哪个地方

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.AI;
    
    public class AutoFindPath : MonoBehaviour
    {
        public Vector3 MousePosition;
        public Transform Des;
        private void Start()
        {
            Debug.Log(Des);
            StartFindPath(Des);
        }
        private void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, LayerMask.GetMask("Ground")))
                {
                    MousePosition = hit.point;
                    StartFindPath(MousePosition);
                }
            }
        }
        private void StartFindPath(Vector3 destination)
        {
            this.GetComponent<NavMeshAgent>().destination = destination;
        }
        private void StartFindPath(Transform destination)
        {
            this.GetComponent<NavMeshAgent>().destination = destination.position;
        }
    }
    

    效果:
    在这里插入图片描述

    展开全文
  • Unity3D AI:导航系统-导航网格生成

    千次阅读 2018-11-22 16:07:35
    导航系统又称寻路系统,在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:该物体可以行进的网格层掩码。

    展开全文
  • Unity 之Navigation烘焙

    万次阅读 2017-02-09 21:32:12
    Building a NavMesh 在Unity中,NavMesh 的生成操作需要Navigation窗口(在Window> Navigation) 在你的场景中构建NavMesh只需要4个步骤:

    Building a NavMesh

    在Unity中,NavMesh  的生成操作需要Navigation窗口(在Window> Navigation

    在你的场景中构建NavMesh只需要4个步骤:

    1. 选择场景中需要生成寻路的几何体-可行走表面和障碍物。
    2. 在NavMesh面板中选择需要烘焙寻路的物体,检测是否勾选Navigation Static.
    3. 根据你的agent大小来调整bake 面板的设置。
      • Agent Radius : agent可以距离墙体 ,窗户或边缘多近的距离。
      • Agent Height : agent可以通过的最低的空间高度。
      • Max Slope : agent可以直接行走上去的最小坡度。
      • Step Height:  agent可以踩上(走上)的障碍物最高高度。
    4. 点击bake按钮烘焙NavMesh。

    当你的Navigation窗口打开并且可见时,烘焙的NavMesh结果在场景中会以蓝色的覆盖层在物体的几何体表面显示。

    When baking is complete, you will find a NavMesh asset file inside a folder with the same name as the scene the NavMesh belongs to. For example, if you have a scene called First Level in the Assets folder, the NavMesh will be at Assets > First Level > NavMesh.asset.当烘焙结束后,你可以找到一个名字和你的场景名一样的文件夹,里面有一个NavMesh的资源文件,是属于这个场景的NavMesh。

    让物体可烘焙的其他方法

    直接选择物体在Inspector面板顶部的Static 菜单,你可以直接选择Navigation Static,而不用再打开Navigation 窗口。

    NavMesh烘焙的高级设置

    最小区域面积

    Min Region Area 允许你剔除掉小的非连接NavMesh区域,当NavMesh区域小于指定值时将被剔除。

    请注意:有些区域可能无法被移除,尽管有Min Region Area 的设置,原因是NavMesh的构建是一个个的网格并行构建。当一个区域横跨两个网格将不会被移除,因为区域修剪过程中无法获取到周围的网格。

    Voxel Size 立体像素尺寸

    Manual voxel size :允许你改变烘焙操作过程中的精确性。

    Navigation在构建寻路网格过程中,第一遍会把场景光栅化为体素,然后提取可行走区域,最后可行走区域会烘焙成网格。因此体素尺寸Voxel Size的决定了寻路网格烘焙的精准性。

    提示:默认的体素设置最好的权衡了准确性和烘焙速度。在烘焙场景寻路的过程中,体素的增加会造成4x倍的内存消耗和4x倍的时间消耗。因此通常,你不需要自己去设置Voxel Size。


    Smaller Agent Radius

    系统烘焙寻路是也会减小voxel size。如果你的agent尺寸保持不变,可能不需要增加NavMesh的构建分辨率。

    更简单的方法如下所示:

    1. 设置你的半径为真实agent半径
    2. 打开Manual Voxel Size,这会保持当前的voxel的大小并且冻结它。
    3. 人为的将你的Agent Radius设置小,因为你已经勾选了Manual Voxel Size ,voxel size将不会改变。

    Height mesh : 允许你为角色提供更精准的位置。

    While navigating, the NavMesh Agent is constrained on the surface of the NavMesh. Since the NavMesh is an approximation of the walkable space, some features are evened out when the NavMesh is being built. For example, stairs may appear as a slope in the NavMesh. If your game requires accurate placement of the agent, you should enable Height Mesh building when you bake the NavMesh. The setting can be found under the Advanced settings in Navigation window. Note that building Height Mesh will take up memory and processing at runtime, and it will take a little longer to bake the NavMesh.

    尽管普通的NavMesh 已经可以很好的运行,但是由于NavMesh只是一个近似的可行走的空间,只保持了一些均衡的特性,如果你的游戏agent需要更精准的行走位置,你可以启用高度网格Height Mesh,

    注意:高度网格Height Mesh将占用你“运行时”的内存和cpu,并且需要更多的烘焙时间。


    展开全文
  • 旋转(欧拉、矩阵) 1.Transform:position(平移)、rotation(旋转)、scale(缩放)。 2.四元数:应于transform组件中的rotation属性,这个属性的类型其实就是四元数。 3.控制旋转的两种方式:矩阵旋转,欧拉...
  • 在window-》Navigation打开Bake 1、Agent Radius(物体的半径)物体半径越小,生成网格面积越大。 2、Agent Height:物体的高度 3、Max Slope 斜坡斜度(最大60°),如果大于设定值就不会生成网格。 4、Step...
  • unity3d 的NavMesh导航系统是一种用于动态物体自动寻路的技术。动态物体就是在游戏中可以运动的物体,一般是有生命的游戏角色,比如玩家英雄、怪物等。很多rpg游戏、实时对战游戏都是使用导航寻路,鼠标右击地图上的...
  • 若是unity navigation bake没有反应,可能是因为没有Navigation Static对象。 比如将静态的模型设置为Navigation Static对象,则带有Nav Mesh Agent组件的物体与静态模型之间,就可以生成导航路径。 也就是说,可以...
  • Unity教程之-Unity3d自带寻路Navmesh

    千次阅读 2017-08-01 18:49:46
    前面的文章《Unity教程之-Unity3d自动寻路功能介绍演示》我们学习过unity3d的自动寻路,最近收到有些朋友的反馈,关于unity3d的寻路的介绍还不是太深入,那么下面我们再来看下Unity3d自带寻路Navmesh:自带寻路Nav...
  • NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。。导航时,只需要给导航物体挂载...
  • 寻路思路 1.烘焙出地形数据,导航数据,区分哪些是路径,哪些是障碍物 2.给要寻路的角色添加寻路的组件,加好了以后就会有速度和目的地之类的参数设置 3.只要设置好目的地,角色就会根据烘焙好的地图自己走过去 ...
  • unity3d 2019烘焙教程 持续更新中

    万次阅读 多人点赞 2019-08-20 11:06:12
    很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,...
  • 为什么要用导航网格系统? 前言:作为刚开始学习unity3d的菜鸟,将学习中觉得值得记笔记的地方分享给大家一起探讨,文中有理解错误的,勿怪哈! 我相信,许多同学刚开始接触unity3d,熟悉基本操作之后,都像我一样...
  • NavMesh(导航网络)是3D游戏世界中用于实现动态物体自动寻路的一种技术,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格,进而在这些网格的基础上通过一系列的计算来实现自动寻路。 实现Capsule物体...
  • Unity3D实现的角色攻击、移动待机死亡以及怪物自动寻路AI等(直接Unity运行)
  • Nav Mesh Agent 效果图 创建地面. 1.1 在Hierarchy下创建一个空的游戏对象命名为Ground: 右键 –&...重命名为Ground.... 3D Object –&amp;amp;amp;amp;gt; Plane, 创建一个之后进行复
  • Unity导航网格代理NavMeshAgent 用法 将场景内所有障碍物(地形、树木、房屋等)标记为Navigation static,以使其参与Unity导航网格的烘焙过程。 在Unity中打开Windows–>Navigation面板,选择bake选项,设置好...
  • Unity3D现在已经可以使用自己自带的寻路Component了,而且使用来气非常的简单明了!  和U3D以前大多数的优化组件类似,Nav也需要在设置好寻路网格和寻路对象之后Bake一下。关于U3D内置的寻路组件主要分为两大...
  • 参考文章:Unity3D深入浅出 - 导航网格自动寻路(Navigation Mesh) http://blog.csdn.net/yuxikuo_1/article/details/44974739 unity3D——自带寻路Navmesh入门教程(二) ... Unity3D自动寻路系统Navig
  • 首先说一下Unity3D shader的坐标转换。 这里首先需要了解Cg语言的标准函数库,链接地址:https://wenku.baidu.com/view/3a9db318fad6195f312ba675.html 有两个转换,一个转换是将物体顶点坐标转换到Unity程序里的...
1 2 3 4 5 ... 20
收藏数 474
精华内容 189
关键字:

unity3d 网格bake