UE4简单C++代码实现物体每帧转动

这里写图片描述

简单的代码:
这里写图片描述

#include "Engine/World.h"



// Called every frame
void UChairComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
    Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

    TurnChair();
}

void UChairComponent::TurnChair()
{
    AActor* Chair = GetOwner();

    FRotator Start = Chair->GetActorForwardVector().Rotation();
    FRotator End = FRotator(0.0f, 60.0f, 0.0f);

    float Change = End.Yaw - Start.Yaw;

    float Direction = FMath::Clamp<float>(Change, -1, 1);

    //终点的Yaw值 = 方向 * 速度 * 每帧所用时间 + 开始的Yaw值
    float NewRoattion = Direction * 20.0f * GetWorld()->DeltaTimeSeconds + Start.Yaw;

    Chair->SetActorRelativeRotation(FRotator(0.0f, NewRoattion, 0.0f));

}

猜你喜欢

转载自blog.csdn.net/qq_36409711/article/details/79255264