세트
세트는 또 다른 타입의 컨테이너이다. 세트는 우리나라 말로 집합이다. 보통 엘리먼트의 값은 중복값이 없으며 인덱스가 없다. 집합에 관련된 연산자가 마련되어 있다.
SET는 다음과 같은 노드들을 갖고 있다.
ADD : 세트에 요소를 추가
ADD ITEMS: 세트에 배열의 요소를 세트에 추가
CONTAINS: 세트에 엘리먼트가 있다면 True를 반환
LENGTH: 세트의 요소수를 반환
TO ARRAY: 세트를 배열에 복사한다. 비용이 많이 든다
CLEAR: 모든 요소를 제거한다
REMOVE: 세트의 엘리먼트를 제거한경우 True 반대의 경우 False를 리턴한다.
REMOVE ITEMS: 세트에서 배열에 있는 지정된 요소들을 제거한다.
UNION: 두개의 세트를 합쳐친 새로운 세트를 만든다
DIFFERENCE : 차집합
INTERSECTION : 합집합
맵
키-값 쌍을 이용해 엘리먼트를 정의한다. 맵은 순서가 없고 키 값을 이용해 검색이 가능하다. 중복키는 허용되지만 중복값은 허용된다.
다음과 같은노드들을 지원한다.
ADD : 키-값 쌍을 맵에 추가한다
REMOVE : 키-값 쌍을 제거한다.
CLEAR : 맵의 모든 요소를 제거한다.
LENGTH : 맵의 요소 수를 반환한다.
CONTAINS : 키를 입력 파라미터로 받고 해당 키를 사용하는 요소가 맵에 포함돼 있으면 True를 반환한다.
FIND : FIND노드는 CONTAINS노드와 비슷하지만 검색에 사용된 키와 관련된 값도 반환한다.
KEYS : 맵의 모든 키를 배열에 복사한다
VALUES : 맵의 모든 값을 배열에 복사한다.
열거형(Enum)
상수의 고정 집합을 포함하는 데이터 타입.
생성시 이름을 E로 시작하는 명명규칙이 있다.
만들는 법은 컨텐츠드로워를 열고 빈곳에 우클릭후 아이콘의 Blueprint가 아닌 아래부분 Advanced Asset> Blueprint>Enumeration을 선택하고 이름을 짓는다.
EWeaponCategory라고 해보겠다. 더블클릭하면 에디터가 나타난다. +Add Enumerator를 클릭해서 상수들을 추가한다.
저장후 적당한 블루프린트에 가서 Weapon이라는 이름의 변수를 만들고 타입은 방금만든 EWeaponCategory를 지정한다.
변수를 끌어 이벤트그래프에 SET으로 놓으면 다음과 같이 열거형 상수를 선택할 수 있다. Weapon의 상수에 다라 선택된 출력을 맵핑할 수 있다.
구조체(스트럭쳐)
여러 타입의 변수를 단일 타입으로 그룹화할 수 있는 복합 데이터 타입이다. 구조체의 요소는 다른 구조체, 배열, 세트, 맵 또는 오브젝트 레퍼런스와 같은 복합 타입일 수 있다. 만드는 법은 Create Advanced Asset>Blueprint>Structure를 선택해 만들수 있다. 이름을 적당히 바꿔준다.
에디터가 나오면 +를 눌러 필요한 변수들을 추가해준다
WeaponType이라는 이름의 변수를 방금만든 Struct타입으로 설정하고 블루프린트 상에서 MakeWeaponType으로 만들고 BreakWeaponType으로 분해해서 출력할 수 있다.
데이터테이블
구조체를 기반으로 하는 값 테이블이다. 스프레드 시트문서를 나타내는 데 사용할 수 있다.
컨텐트드로워의 빈곳에 우클릭후 CreateAdvanmcedAsset>DataTable을 클릭하고
WeaponType Struct를 선택후 OK를 클릭하고 이름을 적당히 변경하고 열어본다.
에디터가 열리면 +를 눌러 아이템을 추가하고 세팅해준다.
저장후 블루스크린에디터를 연다.
변수+를 클릭하고 타입에서 DataTable을 검색해서 Object Reference를 선택한다.
컴파일후 디폴트값을 WeaponTable로 설정해준다.
다음과 같이 RowName이 1인 데이터를 찾아 WeaponType에 설정해주고 스트럭처를 분해해 Name을 출력해준다.
'블루프린팅 > 13. 데이터구조및 흐름제어' 카테고리의 다른 글
[13장 데이터 구조및 흐름제어] 흐름제어 (0) | 2023.06.18 |
---|---|
[13장 데이터 구조및 흐름제어] 오브젝트레퍼런스 배열예제 (0) | 2023.06.18 |
4부 고급 블루프린트 13장 데이터 구조및 흐름제어 (0) | 2023.06.18 |