이 시리즈는 유니티에서 제공하는 튜토리얼을 정리해서 올린 것입니다.
-----------------------------------------------------------------------------------
네임스페이스
네임스페이스는 클래스를 담는 컨테이너의 역할을 한다.
네임스페이스의 목적은 당신의 스크립트를 정리하고 스크립트간의 충돌을 피하기 위함이다.
게임 개발에 유용한 툴을 개발하는 상황이라고 가정해보자
게임 개발에 사용되는 코드와 툴에 사용되는 코드의 네임스페이스를 구분하면
게임 개발 도중 불필요한 코드가 자동완성 목록에 나타나는 현상을 방지할 수 있다.
-----------------------------------------------------------------------------------
우리가 생성한 스크립트 상단에 using UnityEngine이라는 코드가 있을 것이다.
UnityEngine이 바로 네임스페이스이며, 이 네임스페이스를 사용하기 위해 using이라는 키워드를 사용한 것이다.
-----------------------------------------------------------------------------------
나만의 네임스페이스를 만들기 위해 다음과 같은 문법을 사용한다.
namespace를 명시하고 네임스페이스의 이름을 적는다
중괄호를 열고 원하는 클래스를 포함시킨다.
-----------------------------------------------------------------------------------
네임스페이스 내부 클래스에 접근하는 방법은 크게 세 가지가 있다.
1. using을 사용한다
앞서 말했듯 특정 네임스페이스를 using하면 네임스페이스에 포함된 요소들을 사용할 수 있게된다.
2. 닷(.) 연산자를 사용한다.
클래스에서 자주 사용했던 닷 연산자를 사용한다.
SampleNamespace.MySampleClass를 통해 원하는 네임스페이스 내 클래스에 접근할 수 있다.
이를 통해 모호성을 피할 수 있지만 네임스페이스 이름의 길이가 길거나 자주사용해야할 경우에는 귀찮을 수 있다.
3. 동일한 네임스페이스에 클래스 배치
작성 중인 클래스를 필요한 네임스페이스에 넣어버리는 방법이다.
일반적으로는 권장되지 않는다.
-----------------------------------------------------------------------------------
네임스페이스 주의사항
1. 서로 다른 네임스페이스에 있다면 클래스는 같은 이름을 가질 수 있다.
하지만 일반적으로 스크립트파일의 이름은 클래스의 이름이기 때문에
같은 이름을 가진 클래스를 만들고싶다면 두 스크립트는 다른 폴더에 넣어야 한다.
2. 네임스페이스를 사용할 때 모호성을 피해야한다.
예를들어 System과 UnityEngine모두 Random이라는 이름의 클래스를 포함하고 있다.
따라서 Random을 사용하고싶다면 System.Random인지 UnityEngine.Random인지 확실하게 명시해 모호성을 피하자.
3. 네임스페이스는 중첩이 가능하다.
네임스페이스 안에 네임스페이스를 선언할 수 있다.
-----------------------------------------------------------------------------------
이러한 네임스페이스의 활용을 통해 코드를 더욱 체계적으로 관리하고
대규모 프로젝트에서 발생하는 이름 충돌문제를 해결할 수 있다.
댓글 1