배경: 블루프린트에서 배열 사용
Unreal Engine 블루프린트에서 배열은 기본적으로 동적 배열입니다. 이는 연속된 메모리 공간을 사용하는 배열이지만 크기를 동적으로 조정할 수 있어 일반적인 정적 배열의 단점을 보완한 구조입니다.
1. 배열 생성
변수 생성 후 배열로 변경
- 설명: 변수를 생성한 후, 우측 디테일 창에서 변수의 타입을
Array(배열)
로 변경합니다.
- 과정:
- 변수 유형(Variable Type)을 선택.
Array
타입을 활성화.
- 배열로 타입이 변경된 것을 확인.
컴파일 후 배열 관리
- 컴파일하고 저장하면 기본값에서 배열의 값을 추가하거나 수정할 수 있습니다.
- 배열의 각 인덱스에 값을 넣는 구조입니다.
2. 배열의 길이: Length
- 설명: 배열의 길이를 반환하는 함수입니다.
- 사용:
Length
를 호출하면 배열의 크기를 가져옵니다.
- 배열에서 마지막 인덱스를 구할 때는
Length - 1
을 사용합니다.
- 예시:
- 배열
[1, 2, 3]
에서 Length
는 3
입니다.
3. 값 추가: Add와 AddUnique
Add
- 설명: 배열의 마지막에 새로운 값을 추가합니다.
- 결과:
- 예시:
- 배열
[1, 2]
에 Add(3)
→ [1, 2, 3]
.
AddUnique
- 설명: 값이 배열에 없을 경우에만 값을 추가합니다.
- 결과:
- 예시:
- 배열
[1, 2]
에 AddUnique(2)
→ [1, 2]
(변화 없음).
4. 값 제거: Clear
- 설명: 배열의 모든 값을 제거합니다.
- 결과:
- 예시:
- 배열
[1, 2, 3]
에 Clear
→ []
.
5. 값 탐색: Find와 Contains
Find
- 설명: 배열에서 특정 값을 찾아 해당 값의 인덱스를 반환합니다.
- 결과:
- 값이 존재하면 해당 인덱스를 반환.
- 값이 없으면
-1
을 반환.
- 예시:
- 배열
[1, 2, 3]
에서 Find(2)
→ 1
.
- 배열
[1, 2, 3]
에서 Find(4)
→ -1
.
Contains
- 설명: 배열에 특정 값이 존재하는지 여부를 반환합니다.
- 결과:
- 예시:
- 배열
[1, 2, 3]
에서 Contains(2)
→ True
.
- 배열
[1, 2, 3]
에서 Contains(4)
→ False
.
6. 크기 변경: Resize
- 설명: 배열의 크기를 지정된 값으로 변경합니다.
- 결과:
- 크기가 작아지면 초과된 요소가 삭제됩니다.
- 크기가 커지면 추가된 공간은 기본값으로 초기화됩니다.
- 예시:
- 배열
[1, 2, 3]
에 Resize(5)
→ [1, 2, 3, 0, 0]
.
- 배열
[1, 2, 3]
에 Resize(2)
→ [1, 2]
.
7. 값 설정: Set Array Elem
- 설명: 배열의 특정 인덱스 값을 설정합니다.
- 옵션:
- Index: 값을 설정할 배열의 인덱스.
- Item: 설정할 값.
- Size to Fit: 체크 시 배열 크기를 자동으로 확장.
- 결과:
- 인덱스가 배열 크기 내에 있으면 값을 설정.
- 크기 밖이면
Size to Fit
여부에 따라 동작.
- 예시:
- 배열
[1, 2, 3]
에서 Index=1
, Item=5
→ [1, 5, 3]
.
- 배열
[1, 2, 3]
에서 Index=5
, Size to Fit
체크 → [1, 2, 3, 0, 0, 5]
.
8. 배열 반복: For Each Loop
- 설명: 배열을 순회하며 각 요소를 처리할 수 있는 반복문입니다.
- 특징:
- Array Element: 현재 배열의 값.
- Array Index: 현재 배열의 인덱스.
- 예시:
- 배열
[1, 2, 3]
에서 For Each
→ 각각의 값(1
, 2
, 3
)과 인덱스(0
, 1
, 2
)를 추출.