일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정렬
- map
- UELOG
- 람다사용정렬
- stl
- 크리티컬섹션
- 언리얼엔진구조체
- BFS
- 선택정렬
- 람다
- 애셋로드
- 약참조
- unorder_map
- 정렬알고리즘
- UML관련
- moreeffectiveC++
- C++최적화
- 강참조
- 델리게이트
- enumasByue
- 프로그래머스
- 알고리즘
- 스마트포인터
- 언리얼가비지컬렉터
- 자료구조
- UE_LOG
- dataasset
- C++
- 데이터애셋
- UE4 커스텀로그
- Today
- Total
기억을 위한 기록들
애셋 레퍼런싱 관리 방법 (ConstructorHelpers/ C++에서 에디터의 애셋 불러오기) 본문
애셋 레퍼런싱 관리 방법 (ConstructorHelpers/ C++에서 에디터의 애셋 불러오기)
에드윈H 2020. 10. 5. 15:01
ConstructorHelpers 이름에서도 알수 있듯이 생성자도우미(?)이다.
방법 1.
방법 2.
난 지금까지 C++에서 에디터의 애셋을 불러 올때, 방법 1만 사용해왔다. 그러던 중 언리얼 기본 샘플 프로젝트 블록 C++에서 방법2을 보고 알아보았다.
역시 공식문서상에 설명이 간단하게 있었다.
docs.unrealengine.com/ko/Programming/UnrealArchitecture/Reference/Classes/index.html
생성자 스태틱 및 헬퍼
좀 더 복잡한 데이터 유형, 특히나 클래스 레퍼런스, 이름, 애셋 레퍼런스 값을 설정하는 데는, 생성자의 ConstructorStatics 구조체가 필요한 여러가지 프로퍼티 값을 담을 수 있도록 정의하고 인스턴싱하는 것이 필요합니다. 이 ConstructorStatics 구조체는 생성자가 처음 실행될 때만 만들어집니다. 그 이후의 실행시에는 그냥 포인터만 복사하므로 매우 빠릅니다. ConstructorStatics 구조체 생성시 구조체 멤버에 값이 할당되어, 나중에 생성자에서 실제 프로퍼티 자체에 값을 할당할 때 접근할 수 있습니다.
ContructorHelpers 는 ObjectBase.h 에 정의되는 특수한 네임스페이스로, 생성자 전용 흔한 동작을 수행하는 데 사용하는 헬퍼 템플릿이 들어 있습니다. 예를 들어, 애셋이나 클래스로의 레퍼런스 검색은 물론 컴포넌트 생성 및 검색용 헬퍼 템플릿이 있습니다. -위 공식 문서 중 일부-
간단히 설명하면 구조체로 경로들은 담아 놓아 좀 더 손 쉬운 추가, 삭제, 변경 등을 할 수 있을 것이다.
방법1로도 불가능한것은 아닌데, 애셋 레퍼런싱의 개수가 적을때는 큰 문제 없으나, 대량의 애셋 레퍼런싱을 하게 된다면 방법2가 훨씬 나을것이다.
예)
이전의 만든 길찾기 알고리즘 프로젝트 중 블록 색상 매터리얼 애셋들을 가져오기위한 FConstructorStatics 구조체 생성 레퍼런싱
'UnrealEngine > UE4 - CPP' 카테고리의 다른 글
[UE4-CPP] UPROPERY()에 관하여 (0) | 2021.01.21 |
---|---|
UFUNCTION()의 BlueprintImplementableEvent와 BlueprintNativeEvent (0) | 2021.01.14 |
UE4- c++ 액터 컴포넌트 블루프린트에서 호출 + UClass() (0) | 2020.10.22 |
UE4 에서의 시간(C++) (0) | 2020.08.04 |
Unreal C++ 작명관련 (0) | 2020.08.04 |