当前位置: 首页 > 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)

http://www.lryc.cn/news/377130.html

相关文章:

  • 【AWS SMB】关于AWS 中小型企业 (SMB) 能力介绍及注意事项
  • 中年之恋:重返青春的旅程
  • 人工智能中的监督学习和无监督学习
  • 深度学习500问——Chapter12:网络搭建及训练(1)
  • HuggingFace CLI 命令全面指南
  • FreeRTOS源码分析
  • python实战:将视频内容上传到社交媒体平台
  • 【深度学习】sdwebui A1111 加速方案对比,xformers vs Flash Attention 2
  • 5分钟了解单元测试
  • VSCode之C/C++插件之宏定义导致颜色变暗
  • 自然语言处理概述
  • 用Rust和Pingora轻松构建超越Nginx的高效负载均衡器
  • 华为云与AWS负载均衡服务深度对比:性能、成本与可用性
  • Vue65-组件之间的传值
  • Java零基础之多线程篇:线程生命周期
  • 技术差异,应用场景;虚拟机可以当作云服务器吗
  • Qt Quick 教程(一)
  • react钩子函数用法(useCallback、useMemo)
  • linux配置Vnc Server给Windows连接
  • Android中的KeyEvent详解
  • 移植案例与原理 - HDF驱动框架-驱动配置(2)
  • 年终奖发放没几天,提离职领导指责我不厚道,我该怎么办?
  • 多处理系统结构
  • 创建进程的常用方式
  • 李宏毅2023机器学习作业HW06解析和代码分享
  • 专业技能篇--算法
  • Vue中CSS动态样式绑定
  • 【漏洞复现】契约锁电子签章平台 add 远程命令执行漏洞(XVE-2023-23720)
  • 计算机专业是否仍是“万金油”?
  • Spring 启动顺序