我们项目遇到一个问题,就是如何导出导航数据给服务器使用,我们查看了UE4的代码,无法找到一个可用的函数,能导出Recast Navigation格式的导航数据。希望有人能帮我们解决一下,谢谢。
目前引擎有一个命令行,输入 ExportNavigation 就可以导出这些数据。
如果需要细节可以直接看下相应的代码:
RecastNavMeshGenerator.cpp
static class FNavigationGeomExec : private FSelfRegisteringExec
{
...
Generator->ExportNavigationData( FString::Printf( TEXT("%s/%s"), *FPaths::GameSavedDir(), *Name ));
...
}
这个方法,我已经试过了,导出的数据不是Recast Navigation格式的导航数据,目前我是将UE4的代码进行了修改,暴露了Recast Navigation的导航数据,才实现了导航数据的导出。如果想知道具体怎么做的,可以通过邮箱联系我。邮箱地址:ye_lei_@126.com
能把你要的 导航数据 更详细的描述一下吗?我先前错误理解了你的意图。
如果可以的话,分享一下你的代码修改也许对以后类似问题的人能有帮助。
我目前使用UE4开发MMORPG游戏,服务器是使用Recast Navigation导航。通过代码发现UE4导航底层也是Recast Navigation,只不过做了一些修改,所以我想将客户端的导航数据导出给服务器使用。
但是通过代码查看,UE4是没有提供导出导航数据的接口的,所以我们决定自己写。但是遇到了问题,FPImplRecastNavMesh类是可以获取到导航数据(dtNavMesh),但是想获取FPImplRecastNavMesh对象却是保护的,所以我修改了RecastNavMesh.h里面的代码,将protected改成了public。
希望UE4下个版本能暴露dtNavMesh数据,让我们可以获取,或者提供一个函数导出导航数据。
明白你的需求了。
看起来这么做也没什么问题。
不过我想交流下,通常 MMORPG 的话,服务端都是大世界,服务端的寻路数据应该比客户端简单得多,以提高服务器本身的性能。AI 在服务器上进行寻路计算后,在服务器和客户端之间只做位置同步即可。
你这边如果把客户端的寻路数据给服务端用,如果地形不复杂也许还行,如果地形复杂的话,尤其是当 AI 很多的时候,对服务器也会造成一些压力。你们需要留意一下。
当然这个话题已经脱离你的主题了。我们 CLOSE 这个 THREAD 吧。谢谢你提供的方法和代码。
是的,这个我们也会考虑的,客户端导航数据确实很多,但是服务器不会用那么多数据的。只要Recast Navigation的必要数据即可。你能通过我的邮箱和我联系吗,论坛联系还是太麻烦了,我们这边遇到很多问题,想私底下和你交流一下。
您好TIANMIN,能不能帮我回答一下这个问题https://answers.unrealengine.com/questions/448506/%E5%A6%82%E4%BD%95%E5%B0%86ue4%E5%8D%95%E4%BD%8D%E6%94%B9%E6%88%90%E7%B1%B3.html
已经挂了二天了,没有人回答。
Is this issue finally solved by ue4.19?
I want to obtain all the points’ positions, i.e., (x,y,z) from the .obj file generated by the ExportNavigation command.
Is it possible with current ue4.19?