[Unity3D] 다른 오브젝트의 함수를 호출하는 방법들
UnityUnity에서 다른 GameObject의 함수를 호출하기 위한 방법은 여러가지가 있지만 그중 대표적인 방법 3가지만 소개하겠다.
우선 호출할 함수는 public으로 선언되어 있어야 한다.
Player라는 GameObject에 PlayerScript라는 Component가 있고 Func라는 함수를 호출하고 싶다면
1
|
GameObject.Find("Player").GetComponent<PlayerScript>().Func();
|
이 방법이 가장 기본적인 방법이다.
Player라는 이름을 가진 GameObject를 찾아 PlayerScript라는 Component의 Func 함수를 호출하였다.
1
|
GameObject.FindWithTag("GM").GetComponent<GMScript>().Func();
|
GameManager와 같은 유일한 태그를 가지는(GM이라는 태그는 GameManager에서만 사용해야한다) GameObject를 찾을 때에는 FindWithTag를 사용하면 더욱 좋은 퍼포먼스를 낼 수 있다.
1
|
GameObject.FindWithTag("GM").SendMessage("Func");
|
마지막으로 SendMessage라는 함수를 문자열로 호출하는 방법이 있다.
위와같이 호출할 함수를 GameObject에 메세지만 던져주면 알아서 해당 함수가 있는 Component를 찾아서 함수를 호출해준다.
이 방법으로 함수를 호출할때는 호출할 함수가 public으로 선언되어 있지 않아도 된다.
편리한 만큼 약간의 성능저하가 있지만 신경쓸 정도는 아니라고 한다.
'Unity' 카테고리의 다른 글
[Unity3D] Coroutine (0) | 2015.11.28 |
---|---|
[Unity3D] 이동, 회전, 크기변경 정리 (5) | 2015.11.23 |
[Unity3D] GameObject 생성과 삭제. Instantiate와 Destroy (1) | 2015.11.23 |
[Unity3D] Prefab (0) | 2015.11.20 |
[Unity3D] 충돌처리. Trigger와 Collision (2) | 2015.11.20 |