개발나라 스용공주

[UNREAL] 블루프린트 BluePrint 이론 (15) / 배열 본문

개발일지/UNREAL ENGINE

[UNREAL] 블루프린트 BluePrint 이론 (15) / 배열

스용공주 2024. 1. 19. 04:12
728x90
728x90

배열은 자료구조의 종류 중 하나이다.

더보기

<자료구조>

  • 선형 : 자료를 순차적으로 나열함 (ex. 배열, 연결리스트, 스택, 큐)
  • 비선형 : 하나 자료 뒤에 다수의 자료가 올 수 있음 (ex. 트리, 그래프)

 

여기서 배열은 자료를 순서에 맞게 순차적으로 나열하는 선형 구조이며 연속된 메모리의 공간을 할당 받아 사용한다.

배열은 메모리 공간을 추가나 축소가 안되는 단점이 있다.

 

이를 보완한 배열이 바로 동적배열인데 블루프린트에서 사용하는 배열의 개념이 이 동적배열과 같다.

동적배열이란 유동적으로 연속된 메모리 공간을 배치해주고 실제로 여유 메모리를 남겨두는 방식이라 메모리를 얼만큼 사용할지 모르고 유동적인 변경이 가능하다.

따라서 배열이 위의 설명과 같이 공간의 추가가 가능하고 고정되어져 있지 않다면 동적배열인 것이다.

 

 


 

1. 블루프린트의 배열

블루프린트에서 배열을 만드는 방법은 다음과 같다.

변수를 생성해준 뒤 변수 유형에서 자료구조를 배열로 변경해준다.

 

그리고 컴파일 해주면 아래 사진과 같이 배열의 값을 추가할 수 있고 각 인덱스 값에 값을 넣어주는 구조이다.

 

 

 

2. Length

배열의 길이를 알고싶다면 아래 사진과 같이 Length를 이용해주면 배열의 길이를 알아낼 수 있다.

 

 

3. Add / AddUnique

Add는 해당 배열에 값을 추가한다는 의미이고 AddUnique도 Add와 같이 값을 추가하는 의미이지만 AddUnique는 동일한 값이 이미 배열에 존재한다면 추가하지 않는 방식을 가지고 있다.

 

 

4. Clear

Clear는 배열에 있는 모든 값을 지우겠다는 의미와 같다.

 

 

5. Find

해당 배열에 값이 있는지 없는지 찾아주고 있으면 해당 값이 그 배열 안에 위치한 인덱스 값을 반환해주고 없다면 -1을 반환해준다.

해당 데이터의 인덱스 값을 알고 싶을 때 사용 가능하다.

 

 

6. Contains

위의 Find와 비슷해보일 수 도 있지만 Contains의 경우 해당 배열에 값이 있는지 없는지를 Bool형으로 알려준다.

데이터가 있는지 없는지를 확인할 때 사용 가능하다.

 

 

7. Resize

Resize는 아래 사진과 같이 값을 50을 입력하면 50개의 인덱스 자리를 마련해두었다는 의미로 간주할 수 있다.

그래서 디테일 패널에서 하나하나 엘리먼트를 추가하지 않아도 생성되는 것이다.

 

 

8. Set Array Elem

Set Array Elem은 값 변경을 원할 때 원하는 인덱스 위치를 Index에 입력하고 변경할 값을 Item에 입력해주면 해당 인덱스 위치에 값이 변경되는 것을 확인할 수 있다.

우리가 만약에 현재 배열에 인덱스가 0~9까지 있는 상황인데 Set Array Elem에 Index에 15을 쓰면 인덱스 15 자리는 마련해둔 인덱스 값 이상이기 때문에 자리가 없는 자리인 셈이다. 이때 Size to Fit을 체크하여 사용하게 되면 임의로 강제적이게 인덱스를 늘려주는 용도로 사용할 수 있다.

728x90
728x90
Comments