{"repo":"SilenceSu/Easy3dNav","free":true,"listed":false,"github":"https://github.com/SilenceSu/Easy3dNav","clone":"git clone https://github.com/SilenceSu/Easy3dNav.git","description":"基于 recast4j 封装的 Java 版本 3D 游戏寻路组件，面向服务端 NavMesh 查询场景，保留简单的 find、raycast、findNearest 快捷入口，并通过官方 org.recast4j:detour 依赖提供底层 NavMesh 查询能力。","language":"Java","stars":63,"topics":["game-engine","game-3d","nav"],"license":null,"category":"game-templates","readme_excerpt":"Easy3dNav 基于 recast4j 封装的 Java 版本 3D 游戏寻路组件，面向服务端 NavMesh 查询场景，保留简单的 find 、 raycast 、 findNearest 快捷入口，并通过官方 org.recast4j:detour 依赖提供底层 NavMesh 查询能力。 重大升级说明 当前版本是一次面向 2.0 的重大升级，目标是把 Easy3dNav 从早期的简单寻路封装整理成更清晰的服务端 NavMesh 查询库。升级后不保证完全兼容旧 API，旧项目接入前需要做一次编译和行为回归检查。 主要不兼容点： - 旧兼容类 RecastNav 已移除，请统一使用 Easy3dNav 。 - 本地复制的 recast4j Detour 源码已替换为官方 org.recast4j:detour Maven 依赖。 - 新能力优先通过 nav.query() 、 nav.path() 、 nav.random() 、 nav.debug() 分组入口暴露，旧快捷入口只保留少量高频能力。 - 公开 API 尽量使用 Vector3f 、自有结果对象和 Java 集合，不再鼓励业务代码依赖 recast4j 底层类型、polygon ref 或 float[] 。 - 普通查询失败语义已统一，列表返回空列表，点/数值返回 null ，布尔返回 false 。 主要特性 - 路径查询 ：支持 find 、 nav.path().find 、可达性判断和 NavOptions 路径参数。 - 位置查询 ：支持可走性、最近可走点、高度、附近是否有可走区域、局部邻域 polygon、最近墙体距离和墙体命中信息。 - 移动约束 ：支持 moveAlongSurface ，可用于服务端局部移动校验和防穿墙。 - 随机点 ：支持整图随机点、中心点附近随机点和指定范围内随机点。 - 调试与可视化 ：支持 NavMesh metadata 摘要和 polygon 墙体/边界线段查询。 - 加载格式 ：支持 Unity/CritterAI U3D .navmesh 和 recast4j 标准 MeshSet 格式，通过 setUseU3dData(boolean) 在初始化前选择。 - 线程模型 ：加载后的 NavMesh 按只读数据共享，每个线程自动持有独立的 NavMeshQuery 。 - Java 基线 ：继续保持 Java 8，当前底层依赖 org.recast4j:detour:1.5.7 。recast4j 1.5.11 已使用 Java 11 编译，不能用于当前 Java 8 基线。 快速开始 坐标系和 Unity 相同，Y 轴向上。更多示例可参考 src/test/java 。 API 列表与使用场景 优先使用分组 API： nav.query() 做位置/范围查询， nav.path() 做路径和移动约束， nav.random() 做随机点生成， nav.debug() 做调试和可视化。 Easy3dNav.find/raycast/findNearest 是保留的快捷入口，适合旧代码迁移或非常简单的调用场景。 初始化与配置 API 什么时候用 示例 --- --- --- new Easy3dNav() 创建寻路对象，后续再手动 init 。 Easy3dNav nav = new Easy3dNav(); new Easy3dNav(filePath) 路径已确定，创建时直接加载 NavMesh。 Easy3dNav nav","default_branch":null,"files":null,"tree":[],"storefront":"/r/SilenceSu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SilenceSu/Easy3dNav/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}