更改敌人朝向时候敌人会剧烈摇晃怎么办

我先试着用了 mathlibrary 的方法


Enemy->SetActorRotation(UKismetMathLibrary::FindLookAtRotation(Enemy->GetActorLocation(), PlayerLocation));

结果是直接设置了 Enemy 的朝向,没有问题
但是我希望他的转向可以是缓和的,就改成了这样


 FRotator curro = Enemy->GetActorRotation().GetNormalized();
FRotator tarro = UKismetMathLibrary::FindLookAtRotation(Enemy->GetActorLocation(), PlayerLocation);
Enemy->AddActorWorldRotation(0.1 * (tarro - curro));

然后有时运转正常
但是有时敌人会剧烈抖动,方向很随机,而且抖动会越来越强烈

我觉得你给代码写上注释更好,即便那边全球交流的C++开发板块也没人能记住全部API和功效。

所以直接设置就是通过lookat传入自身和玩家坐标推导出旋转角直接给自身

而"缓和"就是获取自身旋转角的归一化0-1?在取得正确的旋转角进行叠加,在update中?

我没仔细看过,但你考虑过ue4中旋转角用的不是四元素而是欧拉角,欧拉角有个角度有死锁问题。