유니티 기초 강좌: 배열의 요소와 인덱스

1. 배열이란 무엇인가?

배열은 동일한 데이터 타입을 가진 여러 개의 요소를 하나의 변수에 묶어 관리할 수 있는 자료구조입니다. 유니티에서는 배열을 사용하여 여러 개의 데이터(예: 점수, 위치, 색상 등)를 쉽게 저장하고 접근할 수 있습니다. 배열의 각 요소는 정수 인덱스를 통해 접근할 수 있으며, 이 인덱스는 0부터 시작합니다. 배열의 기본 구조는 다음과 같습니다.

타입[] 배열이름 = new 타입[배열의 크기];

예를 들어, 정수형 배열을 선언하고 초기화하는 방법은 다음과 같습니다.

int[] scores = new int[5];

2. 배열의 요소에 접근하기

배열의 각 요소는 인덱스를 통해 접근할 수 있습니다. 인덱스는 0부터 시작하므로, 첫 번째 요소는 array[0], 두 번째 요소는 array[1]로 접근할 수 있습니다. 배열 요소에 값을 할당하는 방법은 다음과 같습니다.

scores[0] = 100;

이렇게 하면 scores 배열의 첫 번째 요소에 100이 할당됩니다. 여러 요소에 값을 할당하는 것도 가능합니다.

scores[1] = 90;
scores[2] = 80;

3. 배열의 길이 확인하기

배열의 길이는 배열이름.Length를 통해 확인할 수 있습니다. 배열의 크기를 알고 싶을 때 유용하게 사용할 수 있습니다. 예를 들어, 다음과 같이 배열의 길이를 출력할 수 있습니다.

Debug.Log("배열의 길이: " + scores.Length);

4. 배열의 초기화 방법

배열은 선언과 동시에 초기화할 수 있습니다. 배열의 초기값을 설정하고 싶을 때 다음과 같이 작성합니다.

int[] scores = {100, 90, 80, 70, 60};

이 경우, 배열의 요소는 각각 100, 90, 80, 70, 60으로 초기화됩니다. 배열의 크기를 명시하지 않고 중괄호 안에 값을 나열하면, 배열의 크기가 자동으로 결정됩니다.

5. 다차원 배열

배열은 1차원 배열뿐만 아니라 다차원 배열도 지원합니다. 가장 흔하게 사용되는 다차원 배열은 2차원 배열이며, 행과 열로 구성됩니다. 2차원 배열을 선언하는 방법은 다음과 같습니다.

int[,] matrix = new int[3, 3];

이렇게 선언한 후에는 각 요소에 접근할 때 행과 열의 인덱스를 사용합니다.

matrix[0, 0] = 1;

또는 초기값을 설정할 수도 있습니다.

int[,] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

6. 배열의 반복문 사용하기

배열의 요소를 순회하기 위해 반복문을 사용할 수 있습니다. 가장 흔히 사용하는 반복문은 for 문입니다. 아래와 같이 배열의 모든 요소를 출력하는 예제를 살펴보겠습니다.

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("점수 " + i + ": " + scores[i]);
}

위의 코드에서 for 문을 사용하여 배열의 모든 점수를 출력하는 예시를 볼 수 있습니다.

7. 배열과 List의 차이점

유니티에서 배열과 가장 많이 비교되는 자료구조가 바로 List입니다. List는 가변 길이를 지원하며, 데이터의 추가 및 삭제가 용이합니다. 배열은 고정된 크기를 가지고 있지만, List는 필요에 따라 크기를 조정할 수 있습니다. List를 사용하는 예시는 다음과 같습니다.

using System.Collections.Generic;

// 리스트 선언
List scoreList = new List();

// 요소 추가
scoreList.Add(100);
scoreList.Add(90);
scoreList.Add(80);

배열과 List의 특성을 잘 이해하고 사용하면 프로그래밍에서 더 효율적으로 데이터 관리를 할 수 있습니다.

8. 배열의 유용한 메서드

유니티에서는 배열에 유용한 여러 메서드를 사용할 수 있습니다. 그중 Array.Sort 메서드는 배열을 정렬하는 데 사용됩니다.

Array.Sort(scores);

이 코드는 scores 배열의 요소를 오름차순으로 정렬합니다. 또한 Array.Reverse 메서드를 사용하면 배열을 뒤집을 수도 있습니다.

Array.Reverse(scores);

9. 배열의 복사

배열을 복사하려면 Array.Copy 메서드를 사용하면 됩니다. 이 메서드는 원본 배열의 요소를 새 배열로 복사하는 데 유용합니다.

int[] copiedScores = new int[scores.Length];
Array.Copy(scores, copiedScores, scores.Length);

이렇게 하면 copiedScores 배열이 scores 배열의 요소로 초기화됩니다.

10. 배열의 다루기

배열을 사용할 때 주의할 점은 배열의 인덱스 범위를 초과하는 접근을 피해야 한다는 것입니다. 배열의 길이보다 큰 인덱스에 접근하면 IndexOutOfRangeException이 발생합니다. 항상 배열의 길이를 체크하는 것이 좋습니다.

결론

이번 강좌에서는 유니티에서 배열의 기초 개념과 사용 방법에 대해 알아보았습니다. 배열은 효과적인 데이터 관리를 위한 강력한 도구이며, 다양한 방법으로 활용할 수 있습니다. 배열과 함께 List와 같은 다른 자료구조를 이해하고 활용함으로써 좀 더 효율적인 코드를 작성할 수 있습니다. 앞으로의 프로젝트에서 배열을 적극 활용해 보세요!