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>().함수명()과 같이 사용하였다.
'Unity 공부시작' 카테고리의 다른 글
유니티 :: 프로퍼티와 싱글턴 오브젝트 (0) | 2019.01.09 |
---|---|
유니티 :: 좌표계 (0) | 2019.01.07 |
유니티 :: 이벤트 함수 (0) | 2019.01.07 |
유니티 :: Vector3와 Translate // 대각선 움직임이 더 빠른 경우 (0) | 2019.01.02 |
콜라한캔 :: 유니티 다운로드 (0) | 2018.12.23 |