activeSelf

유니티의 속성중 하나인 activeSelf는 현재 게임오브젝트의 활성화 상태를 bool 값 형식으로 알려주는 기능

 

actvieself는 부모 오브젝트에 종속된 상태여도 부모오브젝트와 상관없이

자신의 상태가 비활성화 상태인 활성화 상태인지 나타낸다.

 

이 기능을 통해 오브젝트를 켜고 끌 수 있는데 예를 들면 다음과 같다.

 

public void OnButton(InputAction.CallbackContext context)
{
    if (context.phase == InputActionPhase.Started)
    {
        uiPanel.SetActive(!uiPanel.activeSelf);
        Time.timeScale = !encyclopedia.activeSelf ? 1 : 0; // resume = 1, pause = 0
    }
}

 

특정 키를 입력 받고 uiPanel.activeSelf가 true면 !이므로 SetActive(false)가 호출되어 UI가 꺼지고, 

반대로 false면 SetActive(true)가 호출되어 UI가 켜지는 원리

 

activeInHierarchy와 차이

또 다른 속성인 activeInHierarchy는 오브젝트가 상위 오브젝트의 활성화, 비활성화 여부가 중요하다.

상위 오브젝트가 비활성화되어도 자신은 활성화된 상태라면

activeSelf는 true지만 activeInHierarchy는 false가 된다.

 

'Unity' 카테고리의 다른 글

[Resource.Load]  (0) 2024.11.13
[Unity] 코루틴 사용법과 특징 정리  (3) 2024.11.06
[모듈러 연산, Event]  (0) 2024.10.24
[Unity] Skybox, Raycast  (1) 2024.10.23
[Unity] AddForce  (0) 2024.10.16

+ Recent posts