오늘은 강의를 들으면서, 3D 유니티 게임을 제작해 보았다.
그런데, 강의에서 activeInHierarchy를 사용해서 activeSelf와 차이점이 무엇인지 궁금해졌다.
activeSelfgameObject.SetActive(true or false)로 직접 설정한 값이 그대로 나온다.gameObject.SetActive(false);
Debug.Log(gameObject.activeSelf); // false
activeInHierarchy// 부모 오브젝트가 비활성화됨
parentObject.SetActive(false);
Debug.Log(childObject.activeSelf); // true
Debug.Log(childObject.activeInHierarchy); // false
| 속성 | 의미 | 예시 결과 |
|---|---|---|
activeSelf | 자신이 직접 설정한 활성 상태 | true/false |
activeInHierarchy | 부모까지 포함해 씬에서 실제 활성 상태인지 | true/false |
activeSelf: 내가 켜져 있는가?activeInHierarchy: 내가 씬에서 진짜로 보이는 상태인가?이처럼 둘은 비슷해 보이지만 확실한 차이가 존재했다.
따라서, 상황에 맞게 둘을 적절하게 사용하면 될 것 같다.