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 |