mave工程中的一个类调用另一个聚合工程的一个类_ue4中资源和代码的跨工程迁移...

本文介绍了如何在UE4中进行资源和代码的跨工程迁移,包括BP和美术资源的迁移,以及C++文件迁移时的类重定向设置。通过修改DefaultEngine.ini文件进行类、枚举、结构体和函数的重定向,解决了C++类名更改后在Blueprint中的错误,并提供了清理重定向的解决方案。
摘要由CSDN通过智能技术生成

平时写些单独的功能的时候,喜欢自己新建一个工程,完成的时候再迁移到项目中

或者有些功能是一个工程中实现的,需要加到另一个工程中,那么中间会遇到哪些问题呢?

迁移BP和美术资源

1a0ae8dcde2d181fce5718843b883cf5.png

选中BP和美术资源,然后右键,选择migrate,然后UE4会将所有的依赖文件选中,然后再选中目标工程的content文件夹就好了

迁移C++文件

1.把C++文件拷到目标C++工程下,然后加入工程

3.进行C++类的重定向

在DefaultEngine.ini中 加入

[CoreRedirects]

+ClassRedirects=(MatchSubstring=True,OldName="/OldProjectName",NewName="/NewProjectName")

+EnumRedirects=(MatchSubstring=True,OldName="/OldProjectName",NewName="/NewProjectName")

+FunctionRedirects=(MatchSubstring=True,OldName="/OldProjectName",NewName="/NewProjectName")

+StructRedirects=(MatchSubstring=True,OldName="/OldProjectName",NewName="/NewProjectName"

举例来说我有一个c++定义的enum,需要迁移,那么需要加入

[CoreRedirects]
+EnumRedirects=(MatchSubstring=True,OldName="/ChangeCloth",NewName="/ArkGame")

ChangeCloth是我原工程的名字ArkGame是新工程的名字

所以UE4应该是做了一个字符串替换,这样就能找到我们新的C++类了,BP中用了这个C++类,也不会丢失了

修改C++的类名字

通常项目中,类名都有一定的命名规范,外部的类进来后,需要改名,但是这个类你可能在blueprint(简称bp)中大量使用了,那么改完后,发现bp中到处是错误,此类的所有变量都变成了UObject,手动修改成新的类型之后,原来的函数调用也都无法恢复正常,超级蛋疼

解决方法:

1.资源重定向

在c++中修改完类名后,打开DefaultEngine.ini ,添加一行

+ActiveClassRedirects=(OldClassName=SanMao,NewClassName=SanMaoYiDao)

这里要注意的是className里填的内容,是去掉前缀的

举例来说:AActor 类的类头文件命名为 Actor.h,那么这里要填的className就是Actor,而不是AActor

再启动 完成替换,问题解决

2.合并重定向

长期累积之下,项目中就会累积很多重定向,这个时候就需要用到清理功能。清理重定向的功能在内容管理器中就可以使用,在任何一个目录上点击右键就可以看到:

be00b397ccdc96887871c72f9e14d132.png

清理完成,保存文件,然后+ActiveClassRedirects=(OldClassName=SanMao,NewClassName=SanMaoYiDao) 就可以从DefaultEngine.ini 中删掉了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值