이전 강의에 이어, 이번에는 데이터 타입에 대해 알아 보겠습니다.
유니티에서는 C#의 기본 데이터 타입 외에도 유니티 특유의 데이터 타입이 존재합니다. 이러한 데이터 타입은 유니티에서만 사용되며, 게임 개발에 필수적인 요소들을 포함합니다.
GameObject monster;
예를 들어, 유니티의 게임 오브젝트를 변수에 담기 위해서는 ‘GameObject’라는 데이터 타입으로 변수를 선언해야 합니다. 이를 통해 씬에 존재하는 게임 오브젝트를 변수에 할당할 수 있습니다.
다음으로, 유니티의 모든 게임 오브젝트가 가지고 있는 ‘Transform’ 컴포넌트를 변수에 담을 수 있습니다. 이를 위해 ‘Transform’ 데이터 타입을 사용합니다.
Transform myTransform;
또한, 물리 시뮬레이션에 사용되는 ‘Rigidbody’ 컴포넌트도 ‘Rigidbody’ 데이터 타입의 변수에 할당할 수 있습니다.
Rigidbody body;
마찬가지로 충돌 감지에 사용되는 ‘Collider’ 컴포넌트도 ‘Collider’ 데이터 타입으로 할당될 수 있습니다.
Collider myCollider;
유니티 고유의 데이터 타입을 변수에 할당하는 것은 단순히 데이터를 변수 안에 복사해 넣는 것이 아니라, 해당 데이터에 직접 접근할 수 있는 방법을 제공하는 것입니다.
이는 윈도우에서 파일에 대한 바로가기 아이콘을 생성하는 것과 비슷합니다.
조금 깊이 들어가 보자면, 유니티에서 변수에 게임 오브젝트를 할당한다는 것은 해당 오브젝트의 메모리 상 주소를 변수에 저장한다는 의미입니다.
예를 들어, ‘GameObject monster = GameObject.Find(“Monster”);’와 같은 코드는 씬에 존재하는 ‘Monster’라는 이름의 게임 오브젝트를 찾아서 그 메모리 주소를 ‘monster’ 변수에 저장합니다.
이것을 ‘참조한다’고 표현합니다. 여러 개의 변수가 하나의 데이터를 참조할 수 있으며, 이는 하나의 데이터에 대한 메모리 주소를 여러 변수가 공유한다는 것을 의미합니다.
이러한 참조 변수를 사용함으로써, 예를 들어 메모리 주소 3000번에 저장된 ‘Monster’ 데이터를 여러 변수가 가리킬 수 있습니다.
이는 윈도우 바탕화면의 여러 단축 아이콘이 하나의 파일을 가리키는 것과 유사합니다.
위의 예시에서, monster, thisMon, yourMon, tempMon 이라는 4개의 변수들은 모두 같은 메모리 주소를 가리키고 있으며, 이를 통해 하나의 데이터를 여러 방식으로 활용할 수 있습니다.
이 내용에 대해 더 자세한 설명은 이후에 제공될 것입니다. 이러한 유니티의 고유 데이터 타입과 참조 변수의 개념을 이해하면, 유니티에서 C# 프로그래밍을 할 때 많은 도움이 될 것입니다.