@[TOC](解决UE打包错误:LogOutputDevice: Error: Ensure condition failed: GetSuperClass() [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/BlueprintGeneratedClass.cpp] [Line: 1552])
【前言】
基于UE4.27.2的EpicLaunch下载版本,在Cook阶段就会发生这个错误,所以是UAssets资源规范导致的问题,主要错误日志为:LogOutputDevice: Error: Ensure condition failed: GetSuperClass() [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/BlueprintGeneratedClass.cpp] [Line: 1552]
LogOutputDevice: Error: Ensure condition failed: ClassDefaultObject [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/BlueprintGeneratedClass.cpp] [Line: 1556]
完整日志参考:https://forums.unrealengine.com/t/help-my-project-made-an-error-while-cooking-ensure-condition-failed-getsuperclass/1584020
https://community.gamedev.tv/t/can-you-help-me-to-fix-this-packaging-error/227062
【解决办法】
问题产生背景
我这个问题是同一个父类的不同子类pawn,从另一个pawn复制过来的函数中的Deleget类型参数的BlueprintGeneratedClass引用的路径是其他类,这个路径应该是自身的资源路径才对。
【解决方法】
先定位到是那个资源,那个函数产生的问题(最笨的方法是二分法不断删除资源和报错的节点,直到不再出现GetSuperClass的错误日志),这里将参数干掉,从新从绑定事件的节点重新连线到方法生成Event参数,就没有Cook到这个问题了。