从UE4官方网站下载4.19.0的引擎版本,新建uproject工程里会生成一个EngineAssociation的GUID,每个人的电脑的GUID都不一样,但用官方的4.19.0的引擎版本,虽然EngineAssociation的GUID不一样,但在每个人的电脑上都能运行
从GitHub上下载4.19.0的源码,编译出一个4.19.1的版本引擎,在这个版本引擎上新建了一个Shooter工程,Shooter工程的目录不在引擎的根目录下,本机完全没有问题,用svn上传4.19.1引擎和Shooter工程。但别人切下了引擎版本和工程文件发现工程打不开,提示版本文件不一致。经发现其他用户用4.19.1的引擎新建工程,在uproject里生成的EngineAssociation的字段替换Shooter工程里的EngineAssociation字段,则可以用4.19.1的引擎打开Shooter工程。这样虽然可以决定问题,但每个人的工程和SVN上都有差异
查阅相关资料,最后发现在4.19.1引擎根目录下创建Shooter工程,Shooter工程里的EngineAssociation的字段为空,而且每个人都能正常打开Shooter工程,解决了报错。但引擎版本和工程文件粘合在了一起,最初的想法是把引擎和工程分离
提问:
为什么官方网站下载4.19.0的引擎版本,新建的工程虽然EngineAssociation的GUID不一样,但每个人还是都能打开。而用源码编译的引擎版本就不行?
除了把工程新建到引擎的根目录下,有什么好的办法希望把引擎和工程分离,不在一起?
希望大佬答疑释惑,不胜感激
官方launcher新建的uproject,EngineAssociation这个字段的值,是同一大版本引擎创建的肯定一样。
"EngineAssociation"这个字段用来判断使用的引擎版本,。
**登录器的版本:**这个值只会是大版本比如4.19,4.20而不会是4.19.1, 4.19.2这种。因为登录器维护一个大版本的一份拷贝。如果你把这个字段删除,那么再双击uproject文件,会弹出引擎版本选择器。
**P4或者Git版本:**由于你可能会同时存在一个大版本下多个小版本的拷贝,所以这个字段创建后会是空的,引擎会根据目录结构自己去选择合适的版本。
**特殊情况:**同时存在多个大版本一样小版本不同的源码编译出来的引擎,这个字段的生成过程会用一个随机的标识来匹配对应的引擎版本。
你这个问题应该就是其他人机器上有多个4.19大版本下的小版本,引擎无法自动识别是哪个。你可以发一个编好的版本到svn上,大家保持更新这个版本的引擎就可以了。