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 구성 요소 이해
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바