이 포스팅은 아래 강의를 들으며 작성되었습니다.
https://www.udemy.com/course/unrealcourse-korean/
움직이는 발판 만들기
void AMovingPlatform::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
FVector CurrentLocation = GetActorLocation();
CurrentLocation += PlatformVelocity * DeltaTime;
SetActorLocation(CurrentLocation);
float DistanceMoved = FVector::Dist(StartLocation, CurrentLocation);
if(DistanceMoved > MoveDistance)
{
FVector MoveDirection = PlatformVelocity.GetSafeNormal();
StartLocation = StartLocation + MoveDirection * MoveDistance;
SetActorLocation(StartLocation);
PlatformVelocity = -PlatformVelocity;
}
}
움직이는 발판의 Tick 코드이다. 주석은 제거하였다.
if문에 걸렸을 때 바로 StartLocation에 CurrentLocation을 대입한다면
델타타임, 속도에 따라서 DistanceMoved가 MoveDistance와 벌어질수록 시작 위치와 동떨어진 곳을 이동하게 되는 버그가 있다.
그래서 SetSafeNormal 함수로 속도의 노말벡터를 구하고
StartLocation에서 해당 방향으로 MoveDistance만큼 움직였을 시에 나와야 하는 벡터 값을
ActorLocation에 넣어주는 것이다.
C++ 클래스 파생 블루프린트를 만드는 또다른 방법
지금까지는 블루프린트 클래스 만들기 -> 부모 클래스 선택을 하였는데
C++ 클래스에서 우클릭을 눌러 파생 블루프린트 클래스를 만들 수도 있다.
여기로 이동
카메라를 이리저리 움직이는 대신
액터를 우클릭하고 여기로 이동을 선택하면
화면을 바로 이동시킬 수 있다.
강제로 콜리전 충돌시키기
일단 이 방법을 과연 실제로 많이 쓸지는 잘 모르겠다
매 틱 X축, Y축으로 아주 살짝 움직였다가 돌아온다.
액터의 Rotation을 전달해줘야 회전각도가 고정이 되어버리지 않는다.
게임 모드
Game Mode: 레벨에서 게임 규칙을 관리하는 액터
게임모드 만들기
프로젝트 세팅 -> 생성: 프로젝트 전체에 대한 게임모드 생성
월드 오버라이드 -> 생성: 월드에 대한 게임모드 생성
게임모드 세팅하기
월드 오버라이드 -> Game Mode Base 클래스 선택 (물론 월드 세팅에서도 선택 가능)
LOG
전에도 로그에 대해 얘기를 했던 적이 있어서 이 포스팅을 참고하면 좋을 듯 하다.
https://mountain-noroo.tistory.com/53
로그는 ulog를 입력해도 UE_LOG 자동완성을 사용 가능하다.
더 많은 로그 수준
저번에는 Log, Warning, Error 세 가지에 대해서만 알아보았는데
사실 로그에는 더 많은 로그 수준이 있다.
https://docs.unrealengine.com/5.1/en-US/API/Runtime/Core/Logging/ELogVerbosity__Type/
Fatal같은 경우에는 에러 발생 후 크래시를 낸다.
포맷을 사용하여 데이터 출력하기
UE_LOG(LogTemp, Display, TEXT("Configure Mode Distance: %f"), MoveDistance);
Text 괄호 안에 쓰면 안된다. 바깥이다.
형식 지정자 모음
https://cplusplus.com/reference/cstdio/printf/
'언리얼 > [Udemy] UE5' 카테고리의 다른 글
[언리얼] Udemy 강의 8일차 메모 (~73강) (1) | 2023.09.30 |
---|---|
[언리얼] Udemy 강의 7일차 메모 (~68강) (0) | 2023.09.29 |
[언리얼] Udemy 강의 5일차 메모 (~55강) (0) | 2023.09.27 |
[언리얼] Udemy 강의 4일차 메모 (~47강) (0) | 2023.09.26 |
[언리얼] Udemy 강의 3일차 메모 (~35강) (0) | 2023.09.25 |