목록2025/10 (18)
나만의 작은 도서관
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. [언리얼] UWorld::SpawnActor 함수에 대해 자세히 알아보기UWorld::SpawnAcotr()는 월드에 액터를 스폰하는 핵심적인 함수이다.SpawnActor()는 단순히 메모리를 할당하는 것이 아니라,액터의 생성자 호출,컴포넌트 등록,초기화(ConstructionScript, OnConstruction 등),BeginPlay 등액터의 생명주기에 해당하는 각 작업을 트리거한다.SpawnActor()의 형태는 2가지가 있다(UE5.3 기준). 2 형태는 아래와 같이 생겼다.// 형태 1. 위치와 회전값을 따로 전달.// @param Class - 스폰할 클래스(필수 인자)// @param Transform - ..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. [언리얼] UMG 앵커 제대로 알아보기 앵커(Anchor)란?앵커는 Canvas Panel 위젯을 부모 위젯으로 두는 위젯이 사용할 수 있으며, 위젯을 Canvas Panel에 배치할 때 기준점으로써의 역할을 한다.아래 사진은 Canvas Panel 위젯을 부모 위젯으로 두었을때 디테일 패널에 나타나는 앵커 목록이다.정확히는 Slot(Canvas Panel Slot) → Anchors에 있다. 앵커 프로퍼티 알아보기 Anchors앵커를 설정하는 프로퍼티이다.사용하는 법: 드롭다운 메뉴에서 프리셋 앵커를 사용하거나, Minimum, Maximum 값을 수동으로 입력하여 앵커를 설정할 수 있다. 또는 앵커 매달을 드래그해도 ..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. [언리얼] ProjectWorldToScreen() 함수 예제ProjectWorldToScreen은 3D 월드 좌표를 유저가 보는 스크린(뷰포트) 좌표로 변환할 때 사용하는 함수이다.APlayerController에 정의되어 있기 때문에 APlayerController를 끌고 와야 사용할 수 있으며, ProjectWorldToScreen() 함수의 소스 코드는 아래와 같이 되어있다.bool APlayerController::ProjectWorldLocationToScreen(FVector WorldLocation, FVector2D& ScreenLocation, bool bPlayerViewportRelative) con..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. [언리얼] 에디터에서 초기화 로직을 정의하고 싶다면? Construction ScriptConstruction Script는 Actor가 에디터 내에서 생성되거나 속성이 변경될 때 자동으로 실행되는 스크립트이다.C++에서 생성자가 있는 것처럼 BP가 가지는 생성자 정도로 보면 된다. Construction Script의 용도C++ 클래스를 상속받아 사용하는 BP의 경우 BeginPlay에 초기화 로직을 넣게 되면, 에디터 상에서 변경된 사안을 보기 위해 매번 에디터를 Play 해야 한다는 단점이 있다.이럴 때 사용하라고 존재하는 것이 바로 Construction Script이며, Construction Script에 초기..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. UE_LOG() 매크로 함수UE_LOG(카테고리, 로그 레벨, 포맷 문자열)언리얼 에디터의 Output Log 창에 로그를 출력하기 위한 매크로 함수. C++에서 std::cout이나 printf 역할을 하는 함수라고 보면 된다. Output Log가 기본 설정인 경우 온갖 로그들이 다 뜨는 바람에 잘 안 쓰게 되는 게 있다.(그냥 AddOnScreenDebugMessage를 쓰고 말지…)근데 이건 설정하면 되긴 한다. 이에 대해선 “UE_LOG를 쓸 때 알아두면 좋은 팁들”에서 따로 다루겠다. UE_LOG 각 인자들 설명 UE_LOG 첫 번째 인자 - 카테고리로그 메시지를 분류하는 데 사용하는 인자.변수 타입은 “FNa..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. [언리얼] C++에서 현재 Actor에 부착된 Component 검색하기Actor는 여러 개의 Component를 가질 수 있다. 또한 여러 종류의 Component를 가질 수도 있다. 만약 내가 C++에서 현재 Actor가 보유하고 있는 Component들 중에서 특정 조건에 맞는 Component들을 검색해서 가져오고 싶다면 어떻게 해야 할까?특정 타입의 모든 컴포넌트 반환 -GetComponents()*GetComponents(OutArray);AActor에는 GetComponents () 함수가 정의되어 있다. 이 함수는 템플릿 인자로 넣어준 Component 타입에 해당하는 컴포넌트들을 검색해서 인자로 넣어준 변..