Unreal Engine C++에서 변수명 앞에 'F'를 붙이는 것은 주로 Unreal Engine의 특정 데이터 타입을 나타내는 접두사
FString: Unreal Engine의 문자열 클래스
FVector : 3D 공간에서의 벡터 클래스
FRotator : 3D 회전을 나타내는 클래스
FTransform : 3D 변환 정보를 나타내는 클래스
#include "DrawDebugHelpers.h"
DrawDebugSphere(GetWorld(), GetActorLocation(), 25.f, 10, FColor::Red, false, 30.f);
DrawDebugPoint(GetWorld(), GetActorLocation(), 10.f, FColor::Red, false, 30.f);
DrawDebugLine(GetWorld(), GetActorLocation(), GetActorLocation() + GetActorForwardVector() * 100.f, FColor::Red, true , -1.f, 0 ,1.f);
SetActorRotation(FRotator(0.f, 45.f, 0.f));
월드 공간에서 이 액터의 위치에 델타를 추가합니다.
월드 공간에서 이 액터의 회전에 델타를 추가합니다.
DeltaTime을 사용하지 않고 MovementRate, RotataionRate에 DeltaTime을 곱해서 사용하는 이유는 FPS에 따라 DeltaTime이 변동 될 수 있기 때문에 고정 값을 전해 FPS의 변동에 속도가 연관되지 않게 하기 위함이다.
void AItem::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 초당 이동속도
float MovementRate = 50.f;
float RotationRate = 100.f;
AddActorWorldOffset(FVector(MovementRate * DeltaTime, 0.f, 0.f));
AddActorWorldRotation(FRotator(0.f, RotationRate * DeltaTime, 0.f));
DrawDebugLine(GetWorld(), GetActorLocation(), GetActorLocation() + GetActorForwardVector() * 100.f, FColor::Red, false, -1.f, 0, 1.f);
DrawDebugSphere(GetWorld(), GetActorLocation(), 25.f, 10, FColor::Red, false, -1.f);
//DRAW_SPHERE_SingleFrame(GetActorLocation());
}