Unity 공식 문서 해설: 게임 오브젝트 비활성화
이 문서는 Unity에서 게임 오브젝트를 비활성화하는 방법에 대해 설명합니다. 비활성화란, 게임 오브젝트를 게임 실행 중에 일시적으로 숨기는 것을 의미합니다.
게임 오브젝트 비활성화하기
인스펙터 창을 통한 비활성화
게임 오브젝트를 비활성화하려면 인스펙터 창으로 이동하여 게임 오브젝트 이름 왼쪽에 있는 체크박스를 해제하면 됩니다. 이때 비활성화된 게임 오브젝트는 계층 창에서 희미하게 표시됩니다.
스크립트를 통한 비활성화
스크립트를 사용하여 게임 오브젝트를 비활성화하려면 SetActive 메서드를 사용합니다.
gameObject.SetActive(false); // 게임 오브젝트 비활성화
게임 오브젝트가 활성 상태인지 비활성 상태인지 확인하려면 activeSelf 프로퍼티를 사용하면 됩니다.
bool isActive = gameObject.activeSelf; // 활성 상태 확인
부모 게임 오브젝트 비활성화
부모 게임 오브젝트를 비활성화하면 모든 자식 게임 오브젝트의 activeSelf 설정도 비활성 상태로 오버라이드됩니다. 즉, 부모가 비활성화되면 자식도 자동으로 비활성화됩니다.
부모 게임 오브젝트를 다시 활성화하면 자식 게임 오브젝트는 원래 상태로 돌아옵니다. 자식 게임 오브젝트가 활성화되어 있는지 확인하려면 activeInHierarchy 프로퍼티를 사용합니다.
bool isActiveInHierarchy = gameObject.activeInHierarchy; // 계층 내 활성 상태 확인
참고 사항
- 자식 게임 오브젝트의
activeSelf프로퍼티는 부모 게임 오브젝트의 상태에 영향을 받을 수 있습니다. 즉, 부모가 비활성화되어 있다면, 자식이 활성 상태로 설정되어 있더라도 비활성으로 간주됩니다.
활용 및 응용 예제
이제 몇 가지 활용 예제를 통해 게임 오브젝트 비활성화를 더 잘 이해해 보겠습니다.
| 예제 제목 | 설명 |
|---|---|
| 간단한 UI 숨기기 | 게임 시작 시 UI 요소를 비활성화하여 게임을 시작할 수 있도록 설정합니다. |
| 턴제전투에서 적 숨기기 | 적이 행동을 마친 후 비활성화하여 반복적인 행동을 방지합니다. |
| 자원 수집 후 비활성화 | 플레이어가 특정 자원을 수집한 후 해당 자원을 비활성화하여 다시 수집할 수 없도록 합니다. |
결론
Unity에서는 게임 오브젝트를 비활성화하는 다양한 방법이 있으며, 이를 통해 게임의 흐름을 조절할 수 있습니다. 인스펙터 또는 스크립트를 통해 쉽게 사용할 수 있으므로 필요에 따라 적절히 활용해 보세요.