UE5 打不开
在游戏开发中,出现了UE打不开的情况
初步推测,新增了接口Attacker,
而我们的DefaultPawn可能一下子实现了两个接口造成的
而这两个接口都在一个插件里,一个是c++实现的,一个是蓝图实现的
解决方法:先把我的BP_ThirdPersonCharacter代码回退(先把现有的备份下),即Git revert
然后UE打开之后,可以正常运行,然后再拿修改之后的替换进去
后来发现接口的问题
后续:
如果该Character蓝图类实现两个接口打不开,把他们去掉,只用一个,发现可以打开,以前在蓝图中实现的接口,再打开之后都无效了,他们变成了事件
而之前设置的接口都没有了。还有一个特点,就是在另一个类实现这俩接口都能打开,并且正常,问题只出现在BP_ThirdPersonCharacter
我解决如下,在插件c++层的接口进行修改,可以解决蓝图里无法Cast为该c++接口的问题()
接口的实现改成如下,即加入了Blueprintable
UINTERFACE(MinimalAPI, Blueprintable) class UDamageable : public UInterface { GENERATED_BODY() };
c++层访问蓝图对象所实现的接口的话有这些
AActor* ownerActor = GetOwner(); bool IsImplementDamagedable = GetOwner()->GetClass()->ImplementsInterface(UDamageable::StaticClass()); //TScriptInterface<IDamageable> damageable = Cast<TScriptInterface<IDamageable>>(GetOwner()); //IDamageable* damageable = ownerDamageable;//Cast<IDamageable>(ownerActor); if (IsImplementDamagedable) { IDamageable::Execute_ApplyDamage(ownerActor, DamageNumber); //damageable->ApplyDamage(DamageNumber); }