본문 바로가기

Unity 공부시작

유니티 :: prefab에 오브젝트 할당

 prefab에 연결되는 객체는 반드시 프리팹 내부에 있는 오브젝트여야 한다.


이 말은, prefab은 다른 scene의 오브젝트와 달리 public GameObject를 선언해주어도 오브젝트를 외부에서 드래그 & 드랍으로 할당해줄 수 없다.


나의 경우 GameManager를 prefab에 할당하고 싶었는데, GameManager의 자료형을 할당해 주는 방법은 찾지 못하였고


GameObject를 찾아주는 GameObject.Find() 를 이용하였다.



* GameObject.Find() 는 Scene에 있는 모든 오브젝트들을 검사하여 찾아주는 것으로, 부하가 걸리는 함수이다.


따라서 Frame마다 실행되는 Update 함수에 쓰지 않는 등 신경 쓰면서 사용해야 한다.



1. prefab의 Start함수에 public GameObject로 선언되어 있는 gameManager에 GameObject.Find("GameManager"); 를 해준다.


2. gameManager를 사용할 때에는 gameManager.GetComponent<GameManager>().함수명()과 같이 사용하였다.