You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:20:12