| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Cocos Creator3.x NavMesh导航网格寻路(新) -> 正文阅读 |
|
[游戏开发]Cocos Creator3.x NavMesh导航网格寻路(新) |
? 前言在游戏开发过程中,寻路可能是大多数游戏都必不可少的功能。2d游戏中最常用的就是A* 寻路了。在3d游戏中,对于一些简单的,没有高度地面A* 寻路同时也是可以使用的,但是对于一些地面比较复杂的游戏,寻路功能怎样实现比较好呢! 效果展示Cocos Creator3.x:NavMesh 导航网格寻路 1.RecastNavigation相信了解过3d寻路的小伙伴都有听说过RecastNavigation。RecastNavigation是一款非常强大的寻路系统,被广泛的应用于各大游戏引擎中。如Unreal,Unity等。 NavMesh的生成基本原理:
感兴趣的小伙伴们可以去了解一下,甚至可以去了解了解源码。源码也去看过,奈何自己C++实在太差 2.耳切法+A*大概了解了导航寻路的原理,觉得整个寻路的关键可以分为两部分:网格画与寻路,所以决定自己尝试一下,现从最简单的没有高度的地图入手 大概步骤:
3.NavMesh 导航在github闲逛的时候发现了recast.js这个库,于是乎就开始花时间去了解了一下具体功能和API,同时还发现在Babylon.js这个3d游戏引擎中已经将其集成进去了,并且这个游戏引擎也是开源的,简直太完美了, 3.1 Cocos Creator3.x花了点时间,成功将recast.js 移到了Cocos Creator3.x
3.2 基础功能实现1.初始化
2.添加静态物体
场景中一些固定不变的,比如地面,障碍物之类的可以通过这个结构进行添加,代码中对传入节点的网格信息进行处理,处理为recast所需要的格式, 3.添加Terrain 地形
terrain 地形组件同时也是游戏开发过程中会常用到的组件,所以听取了大佬的建议,将咱们的寻路对terrain进行了支持,大家可以在demo中看见对terrain数据处理的一些逻辑 4.构建导航网格
5.可视化调试 在构建完导航网格后,为了方便大家调试,需要将最终的数据以可视化的效果展现给大家,方便大家开发过程的调试,代码中已经做好了处理,提供了两种调试方式:
6.Crowd和Agent 首先来谈谈本人对这两个概念的理解吧。Crowd,从字面意识大概就能猜到,这是人群。Agent则表示的是这群人里边的其中一个。可以存在多个人群。本人猜测每个Crowd中的Agent在移动的时候会进行彼此之间距离的一些检测,但是不同Crowd的Agent则不会检测(还未验证),
7.寻路移动 导航网格的关键点就是为了获取两点之间的最有路径。
通过agentMoveTarget()函数去置顶Agent的目标点,同时还需要去实时刷新Crowd来更新Agnet的实际位置,
? ? 4.总结希望以上内容对小小伙伴们可以有所帮助 demo地址:Cocos Creator3.x NavMesh导航网格寻路 | Cocos Store ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:50:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |