1. GameObject.Find(string name)
GameObject shop = GameObject.Find("Shop");
이렇게하면, Shop이라는 이름을 갖은 게임오브젝트를 찾은 뒤 그 값을 리턴한다.
가장 처음에 나오는 게임오브젝트를 찾아서 반환한다.
이후에는 shop 변수를 통해 게임오브젝트를 조작할 수 있다.
예를 들어 시작했을때, 이 게임오브젝트를 안 보이게... 비활성화시키고 싶다면,
shop.SetActive(false);
를 Start함수에 입력해주면 된다.
또한,
shop.activeSelf을 통해 현재 Object가 어떤 상태인지 확인해볼 수 있다.
bool temp = (shop.activeSelf == true) ? false : true;
이렇게하면, shop.activeSelf를 if 조건문에 넣어
true라면 false로, false라면 true로 토글(Toggle)할 수 있게 된다.
2. GameObject FindGameObjectsWithTag(string tagname)
var t = GameObject.FindGameObjectsWithTag("Player");
이렇게 작성하게 되면, 유니티에서 Player이라고 Tag를 설정한 게임오브젝트들의 리스트를 반환한다.
만약, 발견되지 않으면 null값을 반환한다.
리스트이므로, for문이나 foreach문을 사용하여 처리한다.
s
3. GameObject.FindGameObjectWithTag()
var t = GameObject.FindGameObjectWithTag("Player");
이렇게 하면, Player라는 태그를 갖는 게임오브젝트를 불러온다.
위에 GameObject.FindGameObjectsWithTag("태그명")과 헷갈린다. 뭐가 다른지 한참을 처다봤다.
s 차이다. 복수로 리스트 형태로 가져오느냐, 달랑 하나만 가져오느냐 차이이다.
태그를 여러개 사용시에는 2번을 사용해 리스트로 사용하고, 태그가 하나라면 3번을 사용한다.
4. transform.Find(string name)
Text titleTxt = transform.Find("Title").GetComponent<Text>();
이렇게 하면, Find와 마찮가지로 찾지만, 자식이나 부모 관계에서만 찾는다.
즉, 해당 게임오브젝트의 자식 관계에 있는 Title이라는 게임오브젝트를 찾고
그 Title에 붙어있는 컴포넌트들 중 Text를 가져온뒤 titleTxt에 저장하는 코드이다.
반면, GameObject.Find("오브젝트명"); 으로 작성할 경우에는 Hierarchy안에서 위에서부터 다 찾는다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] 마우스.. 드래그로 게임오브젝트 이동 (5) | 2018.02.26 |
---|---|
[유니티] Time.deltaTime의 의미와 사용방법 (2) | 2018.02.21 |
[Unity] [Range(0, 12)]를 통해 유니티 Inspector에서 슬라이더 표시하기 (0) | 2018.02.14 |
[Unity] 유니티에서 enum 사용하기 (0) | 2018.02.14 |
[유니티] Random.Range 사용하는 방법 (0) | 2018.02.13 |