我正在尝试使用 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);
}
如果有比我更聪明的人对这个问题有所了解,将不胜感激。
我认为可能很重要的其他信息:
actorToRotate
ATDWeapon
是扩展自的自定义类型AActor
CharacterToAttack
ATDAICharacter
是扩展自的自定义类型ATDCharacter
- 执行此代码的函数由
GetWorldTimerManager().SetTimer()
- 我已添加
#include "iTween/iTween.h"
到TDWeapon.cpp
文件顶部