GameObject 의 자료형을 가진 배열을 반환한다는 뜻이다.
우선 배열을 왜쓰냐..? GameObject에서 clone을 만들 때... clone을 다루려면 어떻게 해야할까 생각중에
clone을 배열에 넣어놓으면 빼서 쓰면 되겠구나라는 생각으로 배열로 만들기로 했다.
GameObject 의 배열 선언은 저렇게
public GameObject[] bottle;
어디서 본 것 같은 배열선언법??? ㅋㅋㅋㅋㅋ
그렇다면 배열을 만들었으면 이제 원소를 넣어야지?
GameObject의 타입이니까 GameObject만 들어가겠지?
그렇다면 어떠한 GameObject가 들어가야할까?
Tag중에서 "ㅁㅁㅁ"인 것만 원소로 들어갔으면 좋겠다. 라고 생각
그래서
bottle = GameObject.FindGameObjectsWithTag("ㅁㅁㅁ");
라고 쓴 것이다.
그렇다면 배열이니까 꺼내쓰려면 조사를 해야겠지??? if문으로 조건을 어떻게 하든지
내가 쓴 것은
public int countBottle()
{
bottle = GameObject.FindGameObjectsWithTag("unActBottle");
bottlenumber = 0;
for (int i = 0; i < bottle.Length; i++)
{
if (bottle[i].GetComponent().isStanding)
{
bottlenumber++;
}
}
return bottlenumber;
}
다시말해서 모든 bottle오브젝트를 조사할 것이고
만약 그 오브젝트중에서 isStanding이 true값을 가지는 것이 있다면
bottlenumber가 1씩 늘을것이고 그 값을 반환한다.
이 함수는 매 프레임 생성될 것이기 때문에
isStanding의 값이 변하는 오브젝트가 있을 경우 bottlenumber가 바뀌고
bottlenumber는 현 상태에서 isStanding의 참값을 가진 오브젝트의 개수를 나타낼 것이다.
라는 것이라는 것이다.
결국 현재 씬의 오브젝트 상태를 반영하기 위한 함수다.
참고링크
https://docs.unity3d.com/ScriptReference/GameObject.FindGameObjectsWithTag.html
'Game Development, 게임개발 > 개발' 카테고리의 다른 글
카메라 플레이어에게 고정하기, Unity 3D (0) | 2021.02.23 |
---|---|
SerializeField의 개념 [Unity] (7) | 2020.04.15 |
[Unity] 2D에서 충돌하면 떨어뜨리기 (0) | 2020.03.29 |
[Unity] 2D에서 자석 구현하기 !! (6) | 2020.03.13 |
[Unity] 가상패드 만들고 가상패드에서 벡터 가져오기 (0) | 2020.03.01 |