当前位置: 首页 > news >正文

游戏中的寻路算法研究

1)Unity NavMesh研究

思考:毫无疑问,unity中自带的navmesh寻路是比较健全的,无奈在服务器中无法使用,这样子我们没办法做怪的导航,但是可以先体验下都有哪些api,并且可以可视化的看效果。

1)打开导航网格Window->AI->Nagivation基于几何体的环境生成的点击到哪个地方,就发射一条摄像,检测下碰撞。2)OffMeshLink组件: 打开后可以跳过去。3)Unity中重新生成网格数据Navigation:Agents // 数据Bake4)扩展我们不仅仅是为了在Unity中搞,而是要生成到服务器中,实现NPC的导航。5)原理生成多边形NavMesh小块点的信息,边界信息,相邻信息,这样子就可以根据起点和终点去实现了。 Unity是根据AStar算法。 根据点依次移动,就生成了导航。6)障碍物的规避和其它代理物,可以相互避开。 ==》 RVO(考虑到速度)2种方式:一种是改变导航网格的信息,这样子肯定能找到目标, 开启障碍(NavMesh Obstacle的Crave)的。 // 消耗高一种是一直尝试走,查找失败了。7)    NavigationObject点击Mesh Renderers(带有Mesh Renderer脚本的都会列出来)全选勾选Navigation Static,此时就会发现Navigation Area下拉框变为可以选择的点击Scene Filter下的All点击Bake选项卡下的Bake按钮,就会发现生成的导航网格8)体素将场景中的物体,变成一个个小块。

2)优先队列的研究

1)用途:海量定时器:如活动3天后开,避免轮询。取出前面几个:寻路搜索算法:  A*算法2)数据结构:二叉堆。

思考:这个不仅仅是定时器,也为下面的A*学习打基础,毕竟A*是基于权重的,既然是基于权重,那么优先队列中的权重就能用上了。

3)A*算法研究

1.jps // 更极致的格子寻路算法2.AStar较为全能,即可用于三角形,又可格子

4)漏斗算法

5)导出NavMesh到服务器使用

参考资料:

PathFinding.js (qiao.github.io)

相关文章:

  • 解决内核模块加载使用-f参数无法加载的问题
  • 为什么要学Java?
  • Linux驱动开发(二)--字符设备驱动开发提升 LED驱动开发实验
  • 18个机器学习核心算法模型总结
  • 2025计算机毕业设计选题题目推荐-毕设题目汇总大全
  • 智慧校园综合管理系统:打造高效智慧的学校管理平台
  • 契约锁电子签章平台 add 远程命令执行漏洞复现(XVE-2023-23720)
  • 关于面试被面试官暴怼:“几年研究生白读” 的前因后果
  • React获取DOM节点
  • 【Android】基于webView打造富文本编辑器(H5)
  • 网络故障排查-TCP标志位
  • VB.net调用VC DLL(二)
  • AD域离线破解新思路:Trustroasting和TimeRoasting
  • HTML(13)——显示模式
  • 渗透测试基础(四) MS08-067 漏洞攻击
  • SegmentFault for Android 3.0 发布
  • __proto__ 和 prototype的关系
  • 30秒的PHP代码片段(1)数组 - Array
  • C++类的相互关联
  • CSS居中完全指南——构建CSS居中决策树
  • EOS是什么
  • Less 日常用法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • PHP那些事儿
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 关于springcloud Gateway中的限流
  • 批量截取pdf文件
  • 人脸识别最新开发经验demo
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 深度学习中的信息论知识详解
  • 我看到的前端
  • 智能合约开发环境搭建及Hello World合约
  • 【云吞铺子】性能抖动剖析(二)
  • NLPIR智能语义技术让大数据挖掘更简单
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ​字​节​一​面​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #define
  • #php的pecl工具#
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (八)c52学习之旅-中断实验
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)四层和七层负载均衡的区别
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .gitattributes 文件
  • .Net Core中Quartz的使用方法
  • .NET MVC第五章、模型绑定获取表单数据