Unreal Engine 5 C++项目打包报错,求更优解决方案
UE5打包报错:In use pin no longer exists on node Call Public Func 解决办法
问题场景
在Unreal Engine 5中给ThirdCharacter类添加了如下C++方法:
.h 文件代码
public: // 其他公共方法... UFUNCTION(BlueprintCallable) void PrintInRed();
实现.cpp文件后,通过Ctrl+Alt+F11编译,编辑器内测试正常,可在角色蓝图中调用该方法,但打包游戏时出现以下错误:
[Compiler] In use pin
no longer exists on node Call Public Func . Please refresh node or break links to remove pin. from Source: ...
原解决方法为关闭UE5并删除Binaries、Build、DerivedDataCache、Intermediate、Saved、Script目录,但操作繁琐,寻求更优方案。
更简便的解决办法
1. 刷新并修复蓝图调用节点
- 打开报错涉及的角色蓝图,找到那个报错的
Call Public Func节点 - 右键点击节点,选择Refresh Node刷新;若刷新后仍有异常,直接删除该节点,重新从蓝图的函数列表里拖拽
PrintInRed()生成新的调用节点 - 保存蓝图后点击编辑器顶部的Compile按钮重新编译蓝图
2. 打包时自动清理中间缓存
- 打开UE5编辑器顶部菜单栏的Edit -> Project Settings -> Packaging
- 勾选Clean Intermediate选项后再执行打包,打包完成后可根据需求取消该勾选,避免每次打包都清理缓存拖慢速度
3. 轻量清理关键缓存目录
无需删除所有目录,仅删除以下几个核心缓存目录即可:
Intermediate:存放C++与蓝图交互的编译中间文件,是问题高发的缓存区Saved/Blueprints:蓝图编译生成的缓存文件DerivedDataCache/CompiledShaders:可选,若报错涉及 shader 相关时清理
删除后重启UE5,重新编译项目再打包
4. 验证C++代码规范
确认PrintInRed()的声明和实现完全匹配:
- 检查
.h文件中UFUNCTION(BlueprintCallable)后没有遗漏分号 - 确保
.cpp文件中的函数实现与.h的声明一致,没有参数、返回值的偏差
内容的提问来源于stack exchange,提问作者Reginas
相关产品推荐
相关产品推荐

