728x90
* 아래의 책의 내용을 정리한 글입니다! *
로깅?
이때까지 실행한 기록을 나타내 주는 행위로 언리얼에서도 출력 로그로 어떻게 작동하는지를 알아볼 수 있다.
코드로는 이미 로깅할 수 있는 매크로가 정의되어있으나
UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자.. )
책에서는 좀 더 쉬운 방법으로 로깅하기 위해 새로운 공용 매크로를 만들었다.
시작!
AreanaBattle.h 파일에 추가
#define "EngineMinimal.h"
DECLARE_LOG_CATEGORY_EXTERN(ArenaBattle, Log, All);
#define ABLOG_CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define ABLOG_S(Verbosity) UE_LOG(ArenaBattle, Verbosity, TEXT("%s"), *ABLOG_CALLINFO)
#define ABLOG(Verbosity, Format, ...) UE_LOG(ArenaBattle, Verbosity, TEXT("%s %s"), *ABLOG_CALLINFO, *FString::Printf(Format, ##__VA_ARGS__))
- ABLOG_S : 코드가 들어 있는 파일 이름과 함수, 그리고 라인 정보를 추가한다.
- ABLOG : ABLOG_S 정보에 형식 문자열로 추가 정보를 지정해 로그를 남긴다.
AreanaBattle.cpp 파일에 추가
DEFINE_LOG_CATEGORY(ArenaBattle);
//~~~
void AFountain::BeginPlay()
{
Super::BeginPlay();
ABLOG_S(Warning);
ABLOG(Warning, TEXT("Actor Name : %s, ID : %d, Location X : %.3f"), *GetName(), ID, GetActorLocation().X);
}
//~~~
액터의 주요 이벤트 함수
- PostInitializeComponents : 액터에 속한 컴포넌트의 세팅이 완료되면 실행
- BeginPlay : 액터 설치 시에 실행
- EndPlay : 액터 제거 시에 실행
- Tick : 계속 실행
로그를 출력해보면
PostInitializeComponents >> BeginPlay >> EndPlay 순으로 로그가 출력
Tick 은 계속 출력
움직이는 액터 실습
무브먼트 컴포넌트들
- Floating PawnMovement : 중력의 영향을 받지 않는 액터의 움직임 제공
- Rotating Movement : 지정한 속도로 액터를 회전
- Interp Movement : 지정한 위치로 액터를 이동
- Projectile Movement : 액터에 중력의 영향을 받아 포물선을 그리는 발사체의 움직임을 제공(총알, 미사일 등)
Fountain.h 파일에 추가 -- 분수대 헤더 파일
#include "GameFramework/RotatingMovementComponent.h"
UCLASS()
class ARENABATTLE_API AFountain : public AActor
{
GENERATED_BODY()
//~~~
UPROPERTY(VisibleAnywhere)
URotatingMovementComponent* Movement;
//~~~
};
Fountain.cpp 파일에 추가
#include "Fountain.h"
// Sets default values
AFountain::AFountain()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = false;
RotateSpeed = 30.0f;
Movement->RotationRate = FRotator(0.0f, RotateSpeed, 0.0f);
}
빙글빙글 돌아가는 분수대를 볼 수 있습니다!
틀린 점이 있다면 댓 달아주세요!
'언리얼 최고 > 언리얼 c++' 카테고리의 다른 글
이득우의 언리얼 C++ 정리 - 5 (폰의 제작과 조작) (0) | 2022.08.19 |
---|---|
이득우의 언리얼 C++ 정리 - 4 (게임플레이 프레임워크) (0) | 2022.08.17 |
언리얼 C++ 액터 삭제에 대해서! (0) | 2022.08.17 |
이득우의 언리얼 C++ 정리 - 2 (액터의 설계) (1) | 2022.08.16 |
이득우의 언리얼 C++ 정리 - 1 (프로젝트 생성시 파일들) (0) | 2022.08.16 |
댓글