초보 코린이의 성장 일지

UE4 Unreal C++ 도형 색 랜덤 변화, LOG 출력 본문

언리얼

UE4 Unreal C++ 도형 색 랜덤 변화, LOG 출력

코오린이 2023. 3. 2. 14:45

1. Mesh를 가지고 Sphere 클래스를 생성해준다.

1. h, cpp 정의한 내용으로, Mesh 생성 코드를 그대로 가져와서 알맞은 도형 레퍼런스 주소 복사해서 넣어준다.

1. Cone도 동일하게 생성해준다. 그리고 컴파일해주면 위와 같이 2개의 도형이 생성되어있는걸 볼 수 있다.

 

1. 만들어준 Sphere, Cone를 이제 블루프린트로 변화시켜준다. 

2. 위와 같이 생성된걸 볼 수 있다.

 

 

이제 맵에 직접적으로 보여주기 위해 Spawn시킬 클래스를 하나 생성해 볼 것이다.

1. 생성을 우선 완료해주었다.

 

1. 공통으로 사용하기 위해 Anywhere로 만들어 준다.

2. UClass로 만들어준다.

 

1. 지정한 범위를 벗어나서 만드는걸 방지하기 위해 클래스에 제한을 걸어주기 위해 TSubclassOf로 만들어주고, 배열로 생성해준다.

2. 배열로 만든 이유는 객체 3개를 맵에 올리기위해 받아주는 용도.

3. 배열안을 보면은, AC02_Mesh 이하로만 나오는걸 알 수 있다.

 

BeginPlay() 내용

1. C02_Mesh를 사용할것이기 때문에 header를 추가해주고, Tick은 사용하지 않을 것이므로 제거해준다.

2. 언리얼은 여러 플랫폼으로 빌드를 하기 때문에, 자료형을 꼭 명해줘야 한다. 

3. 블루프린트에서는 오버로딩 허용안하고 오버라이딩은 허용한다. C++에서는 둘다 허용한다.

4. 블루프린트에서는 World가 자동으로 들어가지만, C++에서는 지정해줘야한다.

5. World에 등장시켜야하므로, SpawnActor<생성시킬 자료형>() 입력해준다.

 

1. 알아보기 쉽게 하기위해 Text 생성해주고 이름을 변경해준다.

2. 이제 맵에 올려주면, 배열에 저장해놓은 객체 3개가 등장하게되고, 각자 색이 랜덤으로 변하는것을 볼 수 있다.

 

 

이제 게임을 만드는데 있어서 중요하다고 생각하는 Log를 다뤄 볼 것이다.

 

 

 

1. 클래스 내부적으로 사용할 것이므로, 직렬화를 안해줄 것이다.

2. Global에 넣어서 사용해 줄 것이다. 실수로 Global에 들어가 있는 헤더를 CLog.cpp 헤더에 추가해주면 순환 참조가 일어나버린다. 

 

1.  생성자, 소멸자는 사용하지 않을것이다. 이유는 Static로만 사용할 것이기 때문

2. GLog라는 전역 객체가 있다. 여러가지 기본 함수들을 가져다가 또 다른 기능을 만들었다.

하지만 우리는 기본 매크로를 사용하여 연습을 할 것이다.

 

All = 전부

NoLogging = 사용하지 않는다.

Fatal = 항상 콘솔(및 로그 파일)에 치명적인 오류를 출력하고 충돌한다.(로깅이 비활성화된 경우에도 포함)

Error = 콘솔(및 로그 파일)에 오류를 나타낸다.

Warning = 경고

Display = 메시지 출력

Log = 메시지를 로그 파일에 출력 (콘솔에는 출력 하지 않는다)

Verbose = 상세 정보 메시지를 로그 파일에 출력 (일반 상세 로깅에 사용)

VeryVerbose = 상세 정보 메시지를 로그 파일에 출력 (스팸 출력이 발생하는 자세한 로깅에 사용)

 

1. 이제 테스트하기 위한 클래스를 하나 생성해준다.

1. Begin에 잘 들어갔는지 확인겸 10을 대입해준다.

2. 블루프린트로도 생성을 해준다.

3. 이제 이렇게 여러가지 로그를 생성해서 확인해 볼 것이다.

 

 

1. 카테고리를 만들어주는 매크로가 있다. (DEFINE_LOG_CATEGORY_STATIC)

2. GLog를 아래 UE_LOG로 변경한 부분 둘다 동일한 결과를 가져온다.

 

1. 각 오버로딩한 함수 출력 로그 만들어 주기.

2. ToString 사용 이유 알기

1. 각 선언한 로그들 사용하기 위해 선언해준다.

 

1. 각 출력 로그들이 나온다.

2. 여기서 중요한 내용이있다. 위에 보면 Z축에 45값을 줬지만 출력 로그 보면 X, Y, Z 위치가 다르다.

3. 블루프린트에서 회전을 다룰때는 디자인 영역에 축값으로 다루게 된 것이다. 하지만 C++에서 프로그래머 영역은 조금 다르다. 

4. 블루프린트 : Roll, Pitch, Yaw -> Unreal C++ : Pitch, Yaw, Roll 순서로 다룬다. (회전방향 꼭 명심)

 

1. 매크로 3가지를 출력해보면 위와 같이 로그가 나온다.

 

FILE = 현재 있는 곳에 파일명을 알려준다.

FUNCTION = 속해있는 함수명을 알려준다.

LINE = 소스기준으로 속해있는 라인을 알려준다.

 

 

https://www.youtube.com/watch?v=5TvptZtcisg 

 

Comments