微舍 微网站 怎么做,wordpress首页横幅广告代码,制作企业网站公司排名,网站模板怎么改插件地址:h8man/NavMeshPlus#xff1a; Unity NavMesh 2D Pathfinding (github.com)
我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了.
这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问…插件地址:h8man/NavMeshPlus Unity NavMesh 2D Pathfinding (github.com)
我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了.
这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问题). 1.导入插件 2.建立NavMesh空物体,添加Navigation Surface,Navigation CollectSources2d组件,点击Rotate Surface to XY,切换到面向摄像机 3.在TileMap的碰撞层加入NavMeshModifier组件,勾选OverrideArea,选择NotWalkable.这代表是不可行走.
4.在TileMap的地面层,加入NavMeshModifier组件,勾选OverrideArea,选择Walkable.这代表是可行走.(和上面差别就是选择不同) 5.在NavMesh物体,选择Navigation Surface,根据需求调整Layers层级,UseGeometry,有根据 图片渲染,和根据Colliders渲染,根据自己需求调整,我的TileMap碰撞有修改,所有选择物理碰撞生成,点击Bake烘培行走路径. 烘培以后地图是这个样子 6.新建一个单位,添加Nav Mesh Agent组件.然后新建一个脚本挂载上. public NavMeshAgent navMeshAgent;private void Start(){navMeshAgent.updateUpAxis false;navMeshAgent.updateRotation false;navMeshAgent.SetDestination(new Vector3(5, 5));}
以上脚本是锁住旋转和Z轴,然后给定目标点.
如果需要持续追踪目标点,可以使用目标单位的Tansfrom的坐标位置传入 其他问题: 运行时烘焙
通常游戏具有程序化的世界构建需要在运行时烘焙 NavMesh。要实现此目的您需要在组件中调用单个方法以便在运行时以 Unity 异步方式烘焙 NavMesh。可以在方法上调用此方法。BuildNavMeshAsyncNavigationSurfaceStart() public NavMeshSurface Surface2D;void Start(){Surface2D.BuildNavMeshAsync();} 已知问题 代理在 Y 轴上移动或设置代理时卡住。如果 x0_Velocity 不会做任何事情 - 这似乎是 NavMeshAgent 组件中的一个错误。目前没有可用的修复程序但有解决方法。解决方法的想法很简单调整 X 上的代理移动使其永远不会直线上升。 导航网格可以有一个小的倾斜89.98以使代理工作。 如果由于某种原因它不能解决问题则需要添加漂移。 satic float agentDrift 0.0001f; // minimalvoid SetDestination(GameObject target){ if(Mathf.abs(transform.position.x - target.transform.position.x) agentDrift)var driftPos target.transform.position new Vector3(agentDrift, 0f, 0f);agent.SetDestination(driftPos);} 这是官方给出来的解决办法..