배열 : 같은 타입의 여러 변수를 하나로 묶어주는 묶음형 변수.
인덱스(index) : 배열의 각 데이터가 가진 일련의 번호. 0부터 시작.
[배열의 선언]
int[] Array_Name1 = new int[5]; //데이터타입[] 배열 이름 = new 데이터타입[배열의 길이(개수)]
int[] Array_Name2 = {1,2,3,4,5}; //배열을 초기화하면서 데이터 값을 바로 넣어주는 방식입니다.
//Array_Nave[0] = 1
배열의 index는 무조건 0부터 시작합니다.
위의 예시에서 Array_Name2[0]에는 1이 들어가고, [1],[2],[3],[4]에는 2,3,4,5 데이터값이 순차적으로 들어갑니다.
[배열의 길이 조절]
배열은 처음 선언할 때부터 길이가 정해져 있습니다.
배열의 길이는 일반적으로는 잘 바꾸지 않으며, 굳이 바꿔야 할때는 Resize코드로 변경 가능합니다.
int[] Array_Name = {1,2,3,4,5};위의 배열의 길이를 10으로 늘리기 위한 코드는 다음과 같습니다. System.Resize(ref Array_Name, 10);또는,Array_Name = (int[])ResizeArray(Array_Name, 10);
이때, 새로 생긴 index의 데이터에는 디폴트값으로 0이 들어가기 때문에,
배열 안의 데이터값은 {1,2,3,4,5,0,0,0,0,0}이 됩니다.
[배열의 사용]
저는 배열을 리소스 파일 안의 데이터(주로 Sprite)를 받아오거나, 하이랄키 창에 있는 특정 Component를 가진 오브젝트들을 받아올 때 사용합니다. (그 외에는 길이 변동이 자유자재로 가능한 List를 쓸 때가 많습니다. )
글로만 보면 이해가 어려울 수 있으니 예시를 들어보겠습니다.
1. 리소스 데이터 받아오기
Assets/Resources 파일 안에 위와 같은 Sprite파일이 있습니다. 2개의 그림으로 잘라놓은 상태입니다.
Sprite[] PlayerSprite = Resources.LoadAll<Sprite>("APlayer1");
위와 같은 코드로 PlayerSprite[0]에는 Player_0 그림이, PlayerSprite[1]에는 Player_1 그림이 데이터값으로 들어갑니다.
2. 특정 Component를 가진 오브젝트 받아오기
하이랄키 창에 있는 오브젝트들의 일부분입니다.
빨간색으로 표시된 Map1_Hall의 자식들은 모두 공통적으로 'BoxCollider' Component를 가지고 있습니다.
public GameObject Map1; //Map1_Hall을 연결했다고 가정...BoxCollider[] Map1_ChildBox = Map1.transform.GetComponentsInChildren();
이때, Map1_Hall오브젝트에도 'BoxCollider' Component가 있을 경우 이것도 함께 배열에 들어가게 됩니다.
Map1_ChildBox[0]에는 Elevator의 BoxCollider가, Map1_ChildBox[1]에는 Door의 BoxCollider, Map1_ChildBox[2]에는 Door(1)의 BoxCollider가 각각 연결됩니다.
'[Unity] > [C#]' 카테고리의 다른 글
[C#] .NET FrameWork(닷넷 프레임워크) (0) | 2021.07.18 |
---|---|
[C# 기초] #11 : Collection(List, ArrayList) (0) | 2021.07.16 |
[C#] var 자료형 (0) | 2021.07.14 |
[C# 기초] #09 : 반복문(for문, foreach문, while문) (0) | 2021.07.13 |
[C# 기초] #08 : 연산자 - 기본, 대입, 증감, 관계, 논리 연산자 (0) | 2021.07.12 |