[UE5 PuzzlePlatform] 좌표 이동

정우·2022년 8월 30일
0

[UE5 C++]

목록 보기
1/2
post-thumbnail

PuzzlePlatform 좌표 이동

최종 코드

UPROPERTY(EditAnywhere, Meta = (MakeEditWidget = true))
FVector TargetLocation;
#include "MovingPlatforms.h"

void AMovingPlatforms::Tick(float dt)
{
	Super::Tick(dt);

	if (HasAuthority()) {
		FVector Location = GetActorLocation();
		FVector GlobalTargetLocation = GetTransform().TransformPosition(TargetLocation);
		FVector Direction = (GlobalTargetLocation - Location).GetSafeNormal();
		Location += Speed * dt * Direction;
		SetActorLocation(Location);
	}
}

결과물


함수

  • FVector3D::GetSafeNormal() : 벡터의 정규화된 복사본을 가져와 길이에 따라 안전한지 확인한다. 벡터 길이가 너무 작아 안전하게 정규화할 수 없는 경우 0 벡터를 반환한다.
  • AActor::GetTransform() : 액터 공간에서 월드 공간으로 바꿈
profile
개발 일기장

0개의 댓글