코샵
끄적끄적 코딩 공방
코샵

인기 글

  • 분류 전체보기 (470) N
    • MongoDB (4)
    • 일기장 (4)
    • Unity (138)
      • Tip (41)
      • Project (1)
      • Design Pattern (8)
      • Firebase (6)
      • Asset (2)
    • 파이썬 (127) N
      • Basic (40) N
      • OpenCV (8)
      • Pandas (15)
      • PyQT (3)
      • SBC(Single Board Computer) (1)
      • 크롤링 (14) N
      • Fast API (29)
      • Package (6)
    • Linux (4)
    • C# (97)
      • Algorithm (11)
      • Window (7)
    • TypeScript (40) N
      • CSS (2) N
    • Git (11)
    • SQL (5)
    • Flutter (10)
      • Tip (1)
    • System (1)
    • BaekJoon (6)
    • Portfolio (2)
    • MacOS (1)
    • 유틸리티 (1)
    • 서비스 (5)
    • 자동화 (3)
    • Hobby (10)
      • 물생활 (10)
      • 식집사 (0)
전체 방문자
오늘
어제

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
코샵

끄적끄적 코딩 공방

Unity

Unity에서 게임오브젝트를 찾는 방법 1

2023. 9. 25. 11:38
반응형

Unity에서 게임오브젝트를 찾는 방법은 여러 가지가 있습니다. 이 글에서는 GameObject.Find, GameObject.FindWithTag, GameObject.FindGameObjectWithTag 세 가지 메서드를 중심으로 설명하겠습니다. 이들 메서드는 오브젝트의 이름이나 태그를 기반으로 원하는 게임오브젝트를 검색하는 데 사용됩니다.

GameObject.Find 

이름을 통해 게임오브젝트를 찾아 반환합니다.

GameObject player = GameObject.Find("Player");


GameObject.FindWithTag

지정된 태그를 가진 게임오브젝트를 찾아 반환합니다.

GameObject enemy = GameObject.FindWithTag("Enemy");


GameObject.FindGameObjectWithTag

지정된 태그와 이름을 가진 게임오브젝트를 찾아 반환합니다.

GameObject enemy = GameObject.FindGameObjectWithTag("Enemy");

 

주의사항 및 팁:

  • 성능 이슈: Find와 같은 메서드들은 리플렉션을 사용하여 객체를 검색하기 때문에, 런타임 중에 빈번히 사용될 경우 성능에 영향을 줄 수 있습니다. 특히 큰 씬에서는 이러한 메서드의 사용을 최소화하는 것이 좋습니다.
  • 미리 참조: 가능한 한 에디터에서 미리 참조를 연결하여 Find 메서드의 사용을 피하도록 합니다.
  • 태그와 레이어 사용: 적절한 태그와 레이어를 설정하면 원하는 객체를 빠르게 찾을 수 있습니다. 그러나 태그와 레이어의 수는 제한적이므로 신중하게 사용하는 것이 중요합니다.
  • 캐싱: 위 메서드들은 런타음 중에 자주 호출되면 성능 저하를 가져올 수 있기 때문에, 한 번 찾은 게임오브젝트나 컴포넌트는 변수에 저장하여 재사용합니다. 이로써 불필요한 검색을 줄이고 성능을 개선할 수 있습니다.
  • Find 메서드는 오브젝트의 이름을 정확하게 알아야 합니다. 만약 이름이 바뀌게 되면 해당 메서드는 원하는 오브젝트를 찾을 수 없게 됩니다.
  • 비활성화된 오브젝트 : ActiveSelf = false인 오브젝트는 위 메서드들로 해당 오브젝트를 찾을 수 없습니다.
  • 가급적이면 사용하지 않는것이 좋습니다. 필자는 튜토리얼에서 하이라이팅할 오브젝트들이 동적 생성이 되어 개발 속도를 위해 사용하였음.

 

결론:
Unity에서 게임오브젝트를 효율적으로 검색하기 위해 Find, FindWithTag, FindGameObjectWithTag 메서드를 사용할 수 있습니다. 각 메서드의 특성과 사용 방법을 이해하고, 필요한 상황에 맞게 적절히 활용해보세요!

저작자표시 비영리 변경금지

'Unity' 카테고리의 다른 글

리지드바디(Rigidbody)와 캐릭터컨트롤러(CharacterController)의 차이와 장단점 비교  (0) 2023.10.10
Unity에서 게임오브젝트를 찾는 방법 2  (0) 2023.09.26
UnityEditor에서의 Reset과 OnValidate  (0) 2023.09.22
스크립트를 통해 게임 오브젝트에 컴포넌트 추가하기  (0) 2023.09.21
Setting : Resolution and Presentation  (0) 2023.09.20
    'Unity' 카테고리의 다른 글
    • 리지드바디(Rigidbody)와 캐릭터컨트롤러(CharacterController)의 차이와 장단점 비교
    • Unity에서 게임오브젝트를 찾는 방법 2
    • UnityEditor에서의 Reset과 OnValidate
    • 스크립트를 통해 게임 오브젝트에 컴포넌트 추가하기
    코샵
    코샵
    나의 코딩 일기장

    티스토리툴바