Typemismathc for prefabs
현재 개발중인 게임 속에서 되려 처음 알게된 사실이 있다.
우리는 대개 Scene view 에서 소스코드를 public 혹은 serializeField로 인스펙터 창에서 조작, 표시 혹은 할당을 할 수 있다.
하지만, Prefabs 생성된 오브젝트 속에서 내가 주체로 생성한 UI를 드래그 앤 드롭으로 할당하려고 했을때, 문제가 발생했다는 것이다.
결론부터 정리하자면,
씬 오브젝트에 존재하는 오브젝트를 prefab's 오브젝트 필드에 할당할 수 없다.
프리팹은 기본적으로 UnityEngine.Object의 레퍼런스 필드를 상속받게 되어 materials, scriptable objects 등 root objects/ component 등을 저장할 수 있다.
따라서, prefabs 필드에 원하는값을 할당하기 위해서는 Unity runtime에 오브젝트 매니저를 사용하여 원하는 값을 할당하거나, 해당 prefabs를 씬창에 드래그 앤 드롭하여, 동일한 오브젝트를 새로 복사하여 할당하거나, prefab ->> unpack하여 reallocate 해줄 수 있다.
'Unity' 카테고리의 다른 글
Unity GUI : ArgumentException : Getting control 1's position... 에러 (0) | 2024.05.14 |
---|