본문 바로가기

Unity

Unity Type mismatch for Prefabs...

Typemismathc for prefabs 

 현재 개발중인 게임 속에서 되려 처음 알게된 사실이 있다. 

 우리는 대개 Scene view 에서 소스코드를 public 혹은 serializeField로 인스펙터 창에서 조작, 표시 혹은 할당을 할 수 있다.

 하지만, Prefabs 생성된 오브젝트 속에서 내가 주체로 생성한 UI를 드래그 앤 드롭으로 할당하려고 했을때, 문제가 발생했다는 것이다. 

<Type mismatch>

 결론부터 정리하자면,

씬 오브젝트에 존재하는 오브젝트를 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