Slash #3

Kimbab1004·2024년 2월 25일
0

UnrealEngine

목록 보기
21/35

FType

Unreal Engine C++에서 변수명 앞에 'F'를 붙이는 것은 주로 Unreal Engine의 특정 데이터 타입을 나타내는 접두사

FString: Unreal Engine의 문자열 클래스
FVector : 3D 공간에서의 벡터 클래스
FRotator : 3D 회전을 나타내는 클래스
FTransform : 3D 변환 정보를 나타내는 클래스

DrawDebugHelpers

#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);

DrawDebugPoint

DrawDebugLine

SetActorRotation

SetActorRotation(FRotator(0.f, 45.f, 0.f));


AddActorWorld

AddActorWorldOffset

월드 공간에서 이 액터의 위치에 델타를 추가합니다.

AddActorWorldRotation

월드 공간에서 이 액터의 회전에 델타를 추가합니다.

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());

}

0개의 댓글