我正在尝试使用 iTween(通过 C++,而不是 BP)来旋转一个演员面对另一个演员,但它抛出了一个异常Actor.h,上面写着:
我正在使用以下代码来启动补间:
AActor* actorToRotate = Cast<AActor>(this);
if (actorToRotate != nullptr && CharacterToAttack != nullptr)
{
FRotator rotationFrom = actorToRotate->GetActorRotation();
FRotator rotationTo = CharacterToAttack->GetActorRotation();
FName tweenName = TEXT("turret");
AiTweenEvent* TurretTween = UiTween::ActorRotateFromToSimple(tweenName, actorToRotate, rotationFrom, rotationTo, CoordinateSpace::world, false, 2.0f, easeInAndOutQuartic);
}
而不是使用actorToRotate我尝试使用的变量this,ActorRotateFromToSimple()但我得到了同样的错误。
if (CharacterToAttack != nullptr)
{
FRotator rotationFrom = GetActorRotation();
FRotator rotationTo = CharacterToAttack->GetActorRotation();
FName tweenName = TEXT("turret");
AiTweenEvent* TurretTween = UiTween::ActorRotateFromToSimple(tweenName, this, rotationFrom, rotationTo, CoordinateSpace::world, false, 2.0f, easeInAndOutQuartic);
}
如果有比我更聪明的人对这个问题有所了解,将不胜感激。
我认为可能很重要的其他信息:
actorToRotateATDWeapon是扩展自的自定义类型AActorCharacterToAttackATDAICharacter是扩展自的自定义类型ATDCharacter- 执行此代码的函数由
GetWorldTimerManager().SetTimer() - 我已添加
#include "iTween/iTween.h"到TDWeapon.cpp文件顶部
