必威体育Betway必威体育官网
当前位置:首页 > IT技术

[Unity][NavMesh]Unity NavMesh Compent 寻路组件动态自动烘培

时间:2019-06-15 05:41:05来源:IT技术作者:seo实验室小编阅读:96次「手机版」
 

pent

参考资料1,里面有 相关 的 教程

通常 使用以前 的烘培,需要 把物体 变成 静态 物体,现在 UNITY 升级后 使用 相关的组件 可以动态自动烘培 

----------------------------------------建立复制 的地形,一键烘培 使用 navMeshSurface

Roads物体添加NavMeshSurface.cs组件,就可以自动烘培了(使用的模型是 Unity 的assetstore 的simple town lite- cartoon assets)

下载 压缩包,解压后,在如下图所示的位置,复制NavMeshSurface.cs 到工程的文件内,即可添加组件。

把如下图所示的文件复制粘贴 ,即可正常使用

----------------------------------------还是同上的模型,固定范围内动态自动烘培

UNITY 菜单栏 Window-- navigation 

一般进行烘培需要对 Navigation 视图的 Scene Filter 和 Navigation Static 进行设置。然后进行烘培

现在可以固定范围内动态自动烘培

对道路 的预制体 添加如下 2个组件MeshCollider(不一定) 和NavMeshSource Tag(必备)

找到 道路 的预制体 的 Mesh

对 道路 的 Mesh 进行如下图所示的设置(貌似,一定要对 道路 的Mesh 进行如下设置,才可以动态 烘培)

(Read/Write Enabled必备)

如果没有对上面 的 道路 的 模型 的Mesh 进行 如上图所示的设置,就会出现如下图所示的错误。

runtimeNavMeshbuilder: Source mesh road_straight_mesh does not allow read access. This will work in playmode in the editor but not in player

UnityEngine.AI.NavMeshBuilder:UpdateNavMeshData(NavMeshData, NavMeshBuildsettings, List`1, Bounds)

localNavMeshBuilder:UpdateNavMesh(Boolean) (at Assets/examples/Scripts/LocalNavMeshBuilder.cs:56)

LocalNavMeshBuilder:OnEnable() (at Assets/Examples/Scripts/LocalNavMeshBuilder.cs:38)

运行前,没有自动烘培

点击运行后,就 可以在固定范围内 自动烘培。在 Navigation 视图下,可以看到是 自动烘培的

----------------------------------------在固定的范围内 自动烘培

(模型来自 unity asset store 的poly city - free cartoon pack)

对地形 添加 如下图所示的2个组件,Local NavMesh Builder和Nav Mesh Source Tag

如果对 地形 panel 进行移动,烘培的 面积还是固定不变的

----------------------------------------参考资料1,里面的内容

运行时NavMesh构建的组件

这里我们介绍导航系统的四个组件:
NavMeshSurface - 用于构建和启用一个代理类型的导航网格表面。

NavMeshModifier - 根据变换层次结构影响navmesh区域类型的navmesh生成。

NavMeshModifierVolume - 根据体积影响navmesh区域类型的navmesh生成。

NavMeshLink - 为一个代理类型连接相同或不同的导航网格表面。

这些组件包含用于在运行时构建和使用NavMeshes的高级控件以及编辑时间。

文件(草案)

https://docs.Google.com/document/d/1usMrwMHTPNBFyT1hZRt-nQZzRDTciIQRVzmA7MQsFNw

如何开始:
下载并安装Unity 5.6的最新版本。

克隆或下载此存储库并使用功能构建打开项目。或者,您可以将Assets / NavMeshcomponents的内容复制到现有项目。

资源/示例”文件夹中提供了其他示例。这些例子是“按原样”提供的。它们既不是通用的,也不是强大的,而是作为灵感。

注意:在测试周期中,功能和API可能会发生变化。在使用前备份现有的项目。确保在使用此版本打开之前备份现有的项目。

常问问题:

问:我可以在运行时烤navmesh吗?

A:是的

问:我可以将navmesh'es用于多个代理商尺寸吗?

A:是的

问:我可以在预制中加入导航网格吗?

答:是的 - 有一些限制。

问:我如何连接两个navmesh表面?

答:使用NavMeshLink连接双方

问:我如何查询navmesh一个特定大小的代理?

答:查询导航网格时使用NavMeshQuery过滤器

问:与“Defaultexecutionorder”属性有什么关系?

答:它提供了一种控制脚本执行顺序的方法 - 具体来说,它允许我们在(本机)导航元素启用之前构建一个导航网格。

问:新委托“NavMesh.onPreUpdate”有什么用?

答:它允许您在本机端调用导航更新循环之前,控制navmesh数据和链接。

问:我可以移动NavMesh平台吗?

答:不需要 - 持续移动代理商的平台需要新的API。

问:OffMeshLink现在已经过时了吗?

答:不 - 您仍然可以使用OffMeshLink - 但是您会发现NavMeshLink更灵活,开销更少。

问:HeightMesh和Auto generated OffMeshLinks发生了什么?

答:他们不支持在新的navmesh建设功能。 HeightMesh将会在某个时候添加。自动OffMeshLink生成可能会被一个解决方案所取代,从而更好地控制位置。

----------------------------------------

----------------------------------------

参考资料:

1.

NavMeshComponents

2.

What's New in Unity 5.6 - Update to Nav Mesh (1/2)

3.

[Unity][NavMesh]Unity NavMesh Compent 寻路组件动态自动烘培更新2018

4.

[Unity][NavMesh]Unity NavMesh Compent 寻路组件动态自动烘培更新2018

相关阅读

动态网页开发工具的介绍

  动态性网页页面的开发环境依据开发设计视频语音不一样而不一样,关键的方法取决于Python开发设计、JSP开发设计和ASP开发设计的

态网页跟动态网页有什么区别

静态网页跟动态网页有什么区别?建造网站做网站规划时,页面规划的动与静真的要好好积累一下了,这样做出来的页面规划才会更好。具体

动态网站相关概念

C/S体系结构:Client/Server 客户机/服务器结构B/S体系结构:Browser/Server 浏览器/服务器结构URL:Universal Resource Locator 统一

星空大战 Unity版本

参考书籍U3d手机游戏开发, 资源来源: http://www.3d66.com/model_1_33.html http://www.3d66.com/reshtml/76/76741.htm 背景音乐酷

Unity开发——大鹏VR_E3 搭载NOLO

欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 大鹏Vr开发者网站:http://developer.dpvr.cn 大鹏Vr_sdk下载地址:http://d

分享到:

栏目导航

推荐阅读

热门阅读