유니티 C# - 배열 : 1

황정욱·2022년 10월 28일
0
post-thumbnail

배열은 같은 데이터형의 변수들의 집합이다. Array 스크립트를 만들어주었다.

public int[] numbers = { 1, 2, 3 };

라고 적으면 public 이기 때문에 유니티에 노출되고 GameManager를 선택하면 밑에 list가 생긴 것을 확인 할 수가 있다.

numbers를 펼쳐보면 스크립트에서 작성한 숫자가 그대로 유니티에 나오게 된다.

for문을 통해 배열의 배열의 모든 원소를 출력할 수 있다.

for(int i = 0; i < numbers.Length; i++)
{
	Debug.Log($"{numbers[i]}");
}

numbers.Length는 numbers 배열의 길이를 말한다. (정수로 나타난다)
numbers[i]는 numbers 배열의 i번째 원소를 의미한다.

주의사항 1
배열을 사용할때 배열의 원소는 0부터 시작한다. 그래서

1번째 원소는 numbers[0];
2번째 원소는 numbers[1];
3번째 원소는 numbers[2];

위의 예시 같은 경우는 3개의 값만 가지고 있기 때문에 배열의 길이는 3이다.
그래서 numbers[3];을 쓰면 numbers배열의 범위를 벗어나는 4번째 원소를 의미하기 때문에 에러난다.

이상태로 플레이하면 1, 2, 3이 출력된다.

그러나 public이기 때문에 유니티에서 숫자를 바꾸고 저장 할 수 있다.

현재 1, 2, 3이지만
Element 0 -> 10
Element 1 -> 20
Element 2 -> 30

으로 바꾼뒤 저장하고 플레이를 해보자.


스크립트에서 값을 바꾸지 않았지만 유니티에서 값을 바꿨기 때문에 값이 다르게 나온다. 그렇기 때문에 항상 Inspector창을 살펴보는게 좋다.
다시 1, 2, 3으로 되돌려준다.
정수만 담을 수 있는 것은 아니다.

float[] floatAarray = { 0.54f, 7.4124f, -3.14159562f };
string[] stringArray = { "Hello", "Unity", "Engine" };
bool[] boolArray = { true, false, 1 <= 2 };

이런식으로 같은 데이터형의 변수들을 담을 수 있다.

특정 원소의 값을 바꾸고 싶으면 해당 배열인덱스의 값을 같은 데이터형의 값을 넣어주면 된다.

numbers[0] = 100;

이렇게 작성하고 출력하면 100이 출력된다.

int[] numbers2 = new int[3];

라고 적으면 길이가 3인 정수형 배열을 만들고 모든 원소를 0으로 초기화 시켜준다. 배열을 만들면 C#에서는 자동으로 0으로 초기화 시켜준다.

주의사항 2

int[] intArray;
intArray = { 11, 22, 33, 44 };

이렇게 선언은 못한다. new int[배열길이];를 알려주거나 값을 넣어주어야 한다.
int[] abc = {1, 2, 3}
는 명시적 선언이고
int[] xyz = new int[3]
는 암시적 선언이다.
int[] ijk = new int[] { 10, 20, 30, 40, 50, 60 };
는 명시적 + 암시적 선언이다.

profile
C언어, C#, 그리고 유니티

0개의 댓글