Version: 2019.1
스크립트를 사용하여 컴포넌트 생성
태그

게임 오브젝트 비활성화

게임 오브젝트를 비활성 상태로 표시하여 씬에서 일시적으로 제거할 수 있습니다. 이렇게 하려면 인스펙터에서 게임 오브젝트의 이름 옆에 있는 체크박스를 선택 해제(아래 이미지 참조)하거나, 스크립트에서 activeSelf 프로퍼티를 사용하십시오.

이름 옆에 있는 게임 오브젝트의 활성화 체크박스(둘 다 빨간색 상자로 강조 표시됨)
이름 옆에 있는 게임 오브젝트의 활성화 체크박스(둘 다 빨간색 상자로 강조 표시됨)

부모 게임 오브젝트 비활성화

부모 게임 오브젝트를 비활성화하여 해당 자식 게임 오브젝트를 모두 비활성화할 수 있습니다.

비활성화는 모든 자식 게임 오브젝트의 activeSelf 설정을 오버라이드합니다. 즉, 부모 게임 오브젝트를 비활성화하면 모든 하위 계층 구조가 비활성화됩니다. 이 작업은 자식 게임 오브젝트의 activeSelf 프로퍼티의 값을 변경하지 않으므로 부모 게임 오브젝트를 재활성화하여 언제든지 원래 상태로 되돌릴 수 있습니다. 따라서 자식 게임 오브젝트의 activeSelf 프로퍼티를 읽어서 해당 게임 오브젝트가 씬에서 현재 활성 상태인지 판단할 수 없습니다. 그 대신 부모의 오버라이딩 효과를 감안하는 activeInHierarchy 프로퍼티를 사용해야 합니다.

부모 게임 오브젝트가 아니라 자식 게임 오브젝트의 activeSelf 설정을 변경하려는 경우 다음과 같은 코드를 사용할 수 있습니다.

void DeactivateChildren(GameObject g, bool a) 
{
    g.activeSelf = a;
    
    foreach (Transform child in g.transform) 
    {
        DeactivateChildren(child.gameObject, a);
    }
}
스크립트를 사용하여 컴포넌트 생성
태그