GameObject의 activeSelf, activeInHierarchy

2023. 8. 10. 14:47·Unity
반응형

오늘 우리는 Unity에서 객체 활성화의 복잡성에 대해 깊이 파고들고 있습니다. 이 주제는 기본적인 것처럼 보일 수 있지만 미묘한 차이가 있습니다. Unity에서 스크립팅을 해본 적이 있다면 'activeSelf' 및 'activeInHierarchy'라는 매우 비슷하게 들리는 두 가지 속성을 보았을 것입니다. 얼핏 보면 상호 교환이 가능해 보일 수 있지만 서로 다른 용도로 사용됩니다.

activeSelf

'activeSelf'는 개체의 로컬 활성 상태를 나타냅니다. 간단히 말해서, 부모에 관계없이 객체가 명시적으로 활성 또는 비활성으로 설정되었는지 알려줍니다.

키 포인트

  • SetActive 기능이나 인스펙터의 체크박스를 통해 설정한 상태만 반영됩니다.
  • 상위 개체의 활성 상태는 고려하지 않습니다.

용법:

if (gameObject.activeSelf) {
    // This object was explicitly set to active.
}

activeInHierarchy

반면에 activeInHierarchy는 전체 계층을 고려합니다. 개체와 모든 상위 개체가 활성 상태인 경우에만 개체가 계층 구조에서 활성화될 수 있습니다.

키 포인트:

  • 객체와 모든 부모가 활성 상태이면 'true'를 반환합니다.
  • 부모 개체가 비활성 상태인 경우 개체의 로컬 activeSelf가 true인 경우에도 activeInHierarchy는 false를 반환합니다.

용법:

if (gameObject.activeInHierarchy) {
    // This object and all its parent objects are active.
}

실제 예

부모 게임 개체("우주선"이라고 함)와 중첩된 자식 게임 개체("외계인")가 있는 시나리오를 생각해 보십시오.

  • "Spaceship"이 비활성화되고 "Alien"이 활성화된 경우 Alien.activeSelf는 true를 반환하지만 Alien.activeInHierarchy는 부모가 활성화되지 않았기 때문에 false를 반환합니다.
  • "Spaceship"과 "Alien"이 모두 활성화된 경우 Alien.activeSelf와 Alien.activeInHierarchy는 모두 true를 반환합니다.

언제 어떤 것을 사용해야 할까요?

  • 로컬 검사의 경우: 개체를 수동으로 활성화했는지 비활성화했는지에만 관심이 있는 경우 activeSelf를 사용하십시오.
  • 전역 검사의 경우: 개체가 장면에서 실제로 활성화되어 있는지 확인해야 하는 경우(전체 계보를 고려하여) activeInHierarchy를 사용하십시오.

결론

activeSelf 및 activeInHierarchy는 사소한 세부 사항처럼 보일 수 있지만 차이점을 이해하면 Unity 개발에서 흔히 발생하는 함정을 피하는 데 도움이 됩니다. 올바른 시나리오에서 올바른 검사를 사용하면 더 강력하고 안정적인 게임을 만들 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity' 카테고리의 다른 글

Animation : Blend Tree  (0) 2023.08.24
SerializeField 이해하기  (0) 2023.08.10
Unity : 게임 오브젝트에 Bouncing  (0) 2023.08.09
Unity의 Rigidbody 구성 요소 이해  (0) 2023.08.08
텍스처 압축 포맷에서 사용하는 용어  (0) 2023.08.03
'Unity' 카테고리의 다른 글
  • Animation : Blend Tree
  • SerializeField 이해하기
  • Unity : 게임 오브젝트에 Bouncing
  • Unity의 Rigidbody 구성 요소 이해
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (710) N
      • 상품 추천 (211) N
      • MongoDB (4)
      • 하드웨어 (14)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (13) N
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (41) N
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    스크립트 실행
    파이썬
    셀레니움
    쇼핑몰리뷰
    codingtips
    리스트
    learntocode
    devlife
    Python
    list
    appdevelopment
    믈레코비타멸균우유
    스크립트 실행 순서
    ipcamera
    카페24리뷰
    리뷰이관
    rtsp
    상품 리뷰 크롤링
    codingcommunity
    긴유통기한우유
    스마트스토어리뷰
    C#
    라떼우유
    programming101
    cv2
    unity
    유니티
    programmerlife
    리뷰관리
    카페24리뷰이관
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
GameObject의 activeSelf, activeInHierarchy
상단으로

티스토리툴바