스크립트 직렬화 오류
Diagnose and fix common script serialization errors in your project.
읽는 시간 1분최근 업데이트: 한 달 전
특정 상황에서 스크립트 직렬화가 오류를 일으킬 수 있습니다. 아래에서 이러한 문제에 대한 해결 방법을 볼 수 있습니다.
생성자 또는 필드 이니셜라이저에서 Unity 스크립팅 API 호출
MonoBehaviour 생성자 또는 필드 이니셜라이저에서 GameObject.Find와 같은 스크립팅 API를 호출하면 이러한 오류가 발생합니다. “Find is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call in in Awake or Start instead.”
생성자 대신 MonoBehaviour.Start에서 스크립팅 API를 호출하면 이 문제를 해결할 수 있습니다.
역직렬화 중 Unity 스크립팅 API 호출
System.Serializable직렬화된 오브젝트의 생성자에서 스크립팅 API를 호출하지 않도록 코드를 편집해 이 문제를 해결할 수 있습니다.
스레드 세이프 Unity 스크립팅 API
대부분의 스크립팅 API는 위에 나열된 제한 사항에 영향을 받습니다. Unity 스크립팅 API의 일부는 제외되며 어디에서나 호출할 수 있습니다. 이는 다음과 같습니다.
-
Mathf 함수
-
Vector3 및 Quaternion 수학 구조체와 같은 단순한 독립 구조체
직렬화 중 오류 가능성을 낮추기 위해서는 독립적인 구조이면서 Unity 자체에서 데이터를 가져오거나 설정할 필요가 없는 API 메서드만 호출합니다. 이는 대안이 없는 경우에만 호출합니다.