http://blog.sina.com.cn/s/blog_7c5fd2e90101law8.html
很多天没更新微博了,最近工作比较忙在支持一个UE3的项目,EasyKit架构也在无缝地图的方面设计更多解决方案(UnrealEngine4中自带一个seamless travel,主要涉及到广播和LevelStreaming)。昨天查资料发现好多人在问如何编译客户端。好吧,如果不了的确要花点时间研究如何编译客户端。
如果同学们想用VisualStudio编译客户端来查看,打包成游戏后程序的运行机制需要按照以下几个步骤方可成功编译Client。(编辑器中跟代码会跟实际游戏客户端代码运行步骤不同,因为再编辑器预览游戏使用了很多EditorEngine的接口和很多PlayLevel这样的功能类。比如:如果同学们想了解一下实际游戏的入口在哪里,如何在初始化游戏的时候加入自己的模块,在编辑器的运行代码中是很难找到接入点的。)
1.同学们必须要从GitHub下载UnrealEngine4的源码。(这句好像是废话,不过还是想说一下因为有很多同学一直认为用UE4创建一个带C++的工程那就叫源码版)
2.用UnrealEngine4源码先编译一个Editor随便哪个版本(我编译的是Developer Editor)。然后编辑我们自己想要调试的游戏。只想了解游戏运行时UE4引擎处理流程的同学可以用引擎工程创建向导的模板示例。
3.编辑完毕后需要点击编辑器上方Play右边的Launch生成游戏程序文件。(必要条件,如果不进行Launch的话无法调试游戏) 附图:
4.再用VisualStudio的工程编译Client便可调试游戏啦。这种解决方案只代表自己的观点,如果有同学有更好的方法欢迎交流,有错误欢迎指正,我会及时核对后进行修改
遇到过的问题:
UnrealEngine4编辑器的编译环境跟客户端的编译环境不太一致,有些头文件在未Launch游戏文件前是无法找到的。笔者昨天在做场景管理器的时候需要用到LevelStreaming.h这个头文件以便引用一个Action做异步加载。但是连接时总提示:无法找到外部符号。通常出现“我发找到外部符号”的问题都是只有声明没有定义,或者有些库文件不匹配。但是Launch后就可以找到了,所以在调试和对客户端编程时需要同学们先Launch下自己的游戏呦