
RotatePlatfom 함수 선언
RotatePlatform을 기능을 추가하는 과정은 기존의 Location을 제작하는 과정과 유사하다. 일단
12 C++ 기초 - 객체지향 프로그래밍 / Obstacle Assault에서 MovePlatform기능에 관한 함수를 구분하여 정리하는 작업을 선행하였다. 마찬가지로 RotatePlatform의 기능도 구분을 위해 MovingPlatform.h에서 별도의 함수 선언을 해주는 작업을 진행을 해놓고 세부 기능 작성으로 들어가야한다.
Header - MovingPlatformReview.h

cpp - MovingPlatformReview.cpp
cpp에서는 RotatePlatform(); 함수를 작성해주고, 관련 내용을 작성해 줄 void AMovingPlatformReview::RotatePlatform() 을 연결해주는 작업까지 진행한다.


FRotator
위치와 관련 된 작업을 할때 액터의 위치를 알기 위해서 GetActorLocation을 사용했다. 회전에서도 GetActorRotation을 사용하여 액터의 회전과 관련된 요소들을 얻을 수 있다.
cpp - MovingPlatformReview.cpp


1. 07 C++ 기초 개념 및 기능 제작 에서 Location 관련 작업을 했을 때와 같은 방식으로 나머지 과정을 동일하게 작성해준다.
Header - MovingPlatformReview.h
UPROPERTY(EditAnywhere, Category="Rotation")
FRotator RotationVelocity;

cpp - MovingPlatformReview.cpp
void AMovingPlatformReview::RotatePlatform()
{
FRotator CurrentRotation = GetActorRotation();
CurrentRotation = CurrentRotation + RotationVelocity * DeltaTime;
SetActorRotation(CurrentRotation);
}



AddActorLocalRotation
위에서 작업완료한 방식은 조금 복잡 경우는 제대로 작동하지 않는 상황이 나온다.(-90도 까지 작동하면 +90도 까지 값을 반환하는 형식의 회전). 그래서 회전에서 사용되는 경우에 맞닥드리는 예외사항 문제들에 대응이 가능한 AddActorLocalRotation 함수를 기존 작성해둔 코드 대신에 사용한다.
cpp - MovingPlatformReview.cpp
void AMovingPlatformReview::RotatePlatform()
{
AddActorLocaRotation(RotationVelocity * Deltatime);
}

'Unreal C++ > C++ - History' 카테고리의 다른 글
| 14 레벨 디자인 및 마무리 / Obstacle Assault (1) | 2025.01.01 |
|---|---|
| 12 C++ 기초 - 객체지향 프로그래밍 / Obstacle Assault (0) | 2024.12.14 |
| 11 출력 로그 사용 / Obstacle Assault (2) | 2024.12.01 |
| 10 Game Mode / Obstacle Assault (1) | 2024.12.01 |
| 09 충돌 관련 오류 수정 작업 / Obstacle Assault (0) | 2024.11.30 |