gameobject.Find
1. GameObject.Find(“이름”)
>> 현재 활성화된 모든 게임 오브젝트 중에서 특정 이름을 가진 게임 오브젝트를 찾는다.
GameObject myObject = GameObject.Find("Player");
- 장점:
- 간단하고 직관적이다.
- 특정 이름으로 오브젝트를 빠르게 찾을 수 있다.
- 단점:
- 성능이 좋지 않을 수 있다(씬 전체를 검색).
- 이름이 변경되면 코드가 동작하지 않을 수 있다.
2. GameObject. FindObjectOfType(“컴포넌트명”)
>> 특정 타입의 컴포넌트를 가진 첫 번째 활성화된 게임 오브젝트를 찾는다.
Camera mainCamera = GameObject.FindObjectOfType<Camera>();
- 장점:
- 특정 타입의 컴포넌트를 가진 오브젝트를 쉽게 찾을 수 있다.
- 컴포넌트 중심의 검색이 가능해 유용하다.
- 단점:
- 성능이 좋지 않을 수 있다(씬 전체를 검색).
- 특정 타입의 오브젝트가 많으면 첫 번째 오브젝트만 찾는다.
3. GameObject.FindWithTag(“태그”)
>> 특정 태그를 가진 첫 번째 활성화된 게임 오브젝트를 찾는다.
GameObject enemy = GameObject.FindWithTag("Player");
- 장점:
- 태그를 사용하여 오브젝트를 관리할 수 있어 코드의 가독성과 유지보수성이 향상된다.
- 태그는 이름보다 유연하게 관리할 수 있다.
- 단점:
- 태그를 정확하게 설정해야 한다.
- 태그로만 구분하기 때문에 태그가 중복되면 첫 번째 오브젝트만 찾는다.
4. Transform.Find(“이름” 혹은 경로)
>> 현재 게임 오브젝트의 자식 오브젝트 중에서 특정 이름을 가진 오브젝트를 찾는다.
Transform parentTransform = GameObject.Find("ParentObject").transform;
Transform childTransform = parentTransform.Find("ChildObject"); // "ParentObject"의 자식 "ChildObject" 찾기
- 장점:
- 특정 부모 오브젝트 내에서 자식 오브젝트를 찾을 수 있다.
- 구조적으로 조직된 오브젝트를 관리하기 좋다.
- 단점:
- 부모-자식 관계가 변경되면 코드가 동작하지 않을 수 있다.
- 경로를 잘못 설정하면 오브젝트를 찾지 못한다.
공통 단점으로는 성능문제가 있다.
함수 자체가 성능을 많이 소모하기 때문에 Update에서 매번 호출하는 경우 아주 좋지않은 상황을 가져올 수 있다.
>> 나쁜 예
using UnityEngine;
public class Bad : MonoBehaviour
{
void Update()
{
GameObject player = GameObject.Find("Player");
if (player != null)
{
}
}
}
>> 좋은 예
using UnityEngine;
public class Good : MonoBehaviour
{
private GameObject player;
void Start()
{
// Start 메서드에서 한 번만 Player 오브젝트를 찾아서 변수에 저장
player = GameObject.Find("Player");
}
void Update()
{
if (player != null)
{
}
}
}
오늘의 회고
사실 어제 베이직 특강을 들으면서 처음 알게된 내용이였는데 베이직 특강도 볼 수 있게 되어있어서 다행이다라고 느꼈다.. 스탠다드라서 아직 챌린지 강의를 듣기에는 부족할 것 같은데 그래도 많이 성장한 기분이 든다.
그리고 스파르타에서 이벤트로 오늘 하루 라디오 사연같은걸 보내서 읽어주고 하는걸 했는데 싸이버거 받았다.
근데 오버워치 이야기만 나오면 달려가는 말벌아저씨됨;;
오버워치 응원해!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
블리자드 사랑해!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2016년부터 접은적없이 꾸준히 하고있는 게임!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
갓겜입니다!!!!!!!!!!!!!!!!!!!!!!!!
저 콜라보 설문조사했을때 진짜 잘 생각하고 썼는데;; 아직 카우보이비밥, 포르쉐 등만 했음;;
1.스폰지밥 (내가 제일 좋아하는 캐릭터)
2. 이누야샤 (겐지 스킨으로 나오면 진짜 잘어울릴 것 같은데;; 바람의 상처)
3. 쿠키런 (데브시스터즈.. 블리자드랑 콜라보 뭐 어떻게 안되나요?)
4. 방탄소년단 (이건 방탄소년단 오면 진짜 옵치 유저 폭.증 할 것 같아서 ^^;; 팬은 아닙니다)
5. 아바타 아앙의 전설(이거 진짜 젠야타랑 잘어울릴 것 같은데;;),
근데 제가 제안한 콜라보가 만약 진짜 된다면.... 전 그대로 심장마비로 즉사할거라 제꺼는 제가 늙어죽을때쯤 해주시면 됩니다..
사랑해요 블리자드
'Record > TIL' 카테고리의 다른 글
[Unity] 3D 맵 제작 (2D 타일맵을 이용하여 제작하기) (7) | 2024.06.04 |
---|---|
[Unity] 유니티 이벤트와 액션, 구독 기능 (0) | 2024.06.03 |
[Unity] 낮일때는 회복되고 밤일때는 소모되는 UI 만들기 (0) | 2024.05.30 |
[Unity] 플랫폼 발사대 (포물선으로 튕겨내기) (4) | 2024.05.29 |
[Unity] 티스토리 너 가만안둔다.. (4) | 2024.05.29 |