Unreal项目修改名字
- 前言
- 修改Unreal Blueprints工程项目名字
- 修改Unreal C++工程项目名字
前言
Unreal项目修改名字还是比较麻烦的,针对纯蓝图工程和C++工程有一些区别。
修改Unreal Blueprints工程项目名字
修改纯蓝图的Unreal项目还是比较简单的,只要两个步骤:
1、将OldName.uproject文件名修改为NewName.uproject
2、用记事本编辑.uproject文件,将Modules[0].Name修改为新项目名字
项目所在的目录与项目名称没有关系。重新启动工程即可。
修改Unreal C++工程项目名字
修改C++工程相对复杂一些,主要是C++的工程重命名和蓝图类关联C++类丢失问题。
1、参照上一届按照纯蓝图工程给项目重命名
2、修改C++工程名
2-1、将Source目录下两个.cs文件重命名
OldName.Target.cs重命名为NewName.Target.cs
OldNameEditor.Target.cs重命名为NewNameEditor.Target.cs
打开记事本编辑两个cs文件,将文件内容中OldName都替换为NewName
2-2、将Source目录下OldName文件夹重命名为NewName
将Source/NewName目录下三个项目相关文件名修改为新的文件名
OldName.h修改为NewName.h OldName.cpp修改为NewName.cpp
OldName.Build.cs修改为NewName.Build.cs
打开记事本编辑这三个文件,将文件内容中OldName都替换为NewName
2-3、删除Intermediate目录和OldName.sln项目文件,右键点击NewName.uproject工程文件,重新生成C++项目
生成新的NewName.sln项目文件,用Visual Studio打开编辑,如果类名是Unreal自动创建的,一般类名前带有API_OldName的修饰,可以直接删掉,也可以修改为API_NewName修饰。重新编译,完成C++项目名修改
3、修改蓝图类引用
这一步是最麻烦的,当你重新打开Unreal工程后,发现所有的以C++类为基类的蓝图都坏了,且蓝图基类根本无法修改为AActor的C++派生类。
蓝图基类出现问题的原因是C++编译后的类名,除了C++类名,还被加上了项目名的前缀,实际上的类名可能是OldName_MyPawn.OldName_MyPawn.class,需要将类名的前缀修改为新的项目名才行。
如果手动修改蓝图,工作量很大,没有改项目名的意义,不如新建项目。
Unreal引入了一个Core Redirects功能,可以帮助我们批量修改蓝图类的项目名前缀。
参考文档
Unreal官方文档:Core Redirects
使用方法
用记事本打开项目Config/DefaultEngine.ini文件,增加以下节点信息:
[CoreRedirects]
+PackageRedirects=(OldName="/Script/OldName",NewName="/Script/NewName")
重新打开Unreal工程,可以看到蓝图类的引用也正确了。