🎮Unreal4/C++ 55

[UE4] Draw Debug (SolidBox, Point, Sphere, Circle, Line, Capsule, DirectionArrow)

Draw Debug 함수를 C++ 클래스에서 사용해보았다. DrawDebugSolidBox - 속이 채워져있는 직육면체를 출력한다. DrawDebugPoint - 점을 출력한다. (이때 점은 사각형이다) - 점은 항상 카메라 방향을 바라보는데, 이렇게 항상 카메라를 바라보는 면을 빌보드라고 부른다. DrawDebugSphere - 구 모양을 출력한다. DrawDebugCircle - 2D 원 모양을 출력한다. DrawDebugLine - 시작점부터 끝점까지의 라인을 출력한다. DrawDebugCapsule - 긴 원통형 모양인 캡슐을 출력한다. DrawDebugDirectionArrow - 화살표가 주어진 방향을 바라보도록 출력한다. 결과적으로 왼쪽부터 차례로 Solid Box, Sphere, Line,..

🎮Unreal4/C++ 2023.02.27

[UE4] Log 출력, ELogVerbosity 로그 유형, __매크로__, Print 출력(AddOnScreenDebugMessage)

⌨️ Log 출력 프로그래밍 과정 중 꼭 필요한 Debug를 도와줄 Log 작성 코드를 셋팅해보았다. CLog 라는 이름의 헤더파일과 cpp 파일을 각각 생성한 뒤, Log와 Print를 도와줄 static 함수들을 변수 유형별로 선언해두었다. Log를 출력할 때 분류하기 유용한 카테고리는 DEFINE_LOG_CATEGORY_STATIC 명령어를 통해 생성할 수 있다. DEFINE_LOG_CATEGORY_STATIC 명령어의 매개변수로는 카테고리명과, 로그유형, 로그형식을 전달해주면 된다. 로그유형과 로그형식에 따라 종류가 매우 많으므로 간단히 정리해보았다. ELogVerbosity는 로그를 어떻게 출력할 것인지의 정보를 Enum 값으로 가져 상세 목록을 제공한다. ⌨️ ELogVerbosity::Enu..

🎮Unreal4/C++ 2023.02.27

[UE4] Actor 스폰하기 (TSubclassOf<>, GetWorld(), SpawnActor<>())

🔶 TSubclassOf Cube Mesh를 상속받아 Cone과 Sphere 모양의 Mesh 클래스도 만들었다. 이후 해당 Mesh 클래스들을 모두 자손 블루프린트로 생성하여 3개의 서로 다른 모양을 갖는 클래스를 Spawn시키는 Spawner를 생성하였다. 이때 Spawner 클래스에서 Spawn 시킬 클래스를 담는 SpawnClasses 배열 변수를 선언하였는데, 이때 사용한 TSubclassOf는 특정 클래스 이하의 클래스들만 범위로 나타내기 위함이다. TSubclassOf를 사용하지 않고 UClass를 그대로 직렬화하여 나타내면 블루프린트에서 모든 UClass가 출력된다. 그러나 이렇게 모든 클래스가 나타나면 사용할 클래스를 선택하기 쉽지도 않고, 협업할 때에 상대방을 위해 C02_Mesh 클래스..

🎮Unreal4/C++ 2023.02.27

[UE4] Material 가져오기, Material Color 변경, Timer 설정 (StaticFindObject, Cast<>, Kismet System Library, MakeRandomColor)

🚩 Material 이렇게 불러온 Mesh에 Material을 생성해 입혀보기 위해 Material Instance Dynamic 자료형을 선언하여 호출하였다. Material도 CHelpers 클래스에 템플릿화하여 작성하였다. 이전에 Mesh를 생성할 때는 ConstructorHelpers 클래스를 이용하여 ObjectFinder 함수를 사용했는데, Material은 동적으로 초기화되기 때문에 Constuctor 클래스를 사용하지 못한다. 말 그대로 ConstructorHelpers 클래스는 "초기화" 클래스이므로 생성자에서만 사용이 가능하기 때문이다. 따라서 동적 오브젝트 생성을 위해 StaticFindObject 함수를 사용하였다. Static이라는 키워드를 사용하여 한번만 호출한 뒤 계속해서 동적..

🎮Unreal4/C++ 2023.02.27

[UE4] Mesh Component, Mesh Assets 만들기 (CreateDefaultSubobject, ConstructorHelpers, FObjectFinder)

🚩 Mesh Component 블루프린트 내에 생성할 Mesh Component를 C++ 클래스로 만들어보자. 먼저 .cpp 클래스에서 생성될 Mesh Component 변수를 선언해준다. 이후 컴포넌트의 초기화 소스코드를 사용하기 편리하도록 템플릿화 하였다. 컴포넌트 생성은 CreateDefaultSubobject 함수를 이용하여 생성할 수 있고, 매개변수로 컴포넌트의 이름이 들어간다. 블루프린트에서는 Root 컴포넌트가 기본인 Default Component로 정의되어 있지만, C++ 클래스로 생성할 시 Root 컴포넌트는 NULL이므로 꼭 지정해주어야 한다. 이는 SetRootComponent 함수를 이용해 초기화해주었다. 이렇게 만들어진 컴포넌트 생성 함수를 이용하여 Mesh Component를 ..

🎮Unreal4/C++ 2023.02.27
728x90