UnassignedReferenceException: The variable {variable} of {script} has not been assigned.
You probably need to assign the {variable} variable of the {script} script in the inspector.
MonoBehaviour에 SerializeField로 정의된 변수에 아무 오브젝트도 설정하지 않은 (None) 상태일 때 해당 변수를 참조하면 발생하게 된다.
사실 기본적인 내용이라 보기 어려운 에러인데,
문제는 유니티가 C# 최신버전을 적극적으로 지원하게 되면서 발생했다.
Null 조건 연산자나 Null 병합(결합) 할당 연산자를 유니티에서도 사용할 수 있게 되었다.
public class Foo : MonoBehaviour {
[SerializeFIeld]
GameObject _MemberFoo;
public void MethodFoo() {
// UnassignedReferenceException !
_MemberFoo?.SetActive(false);
}
}
코드만 봤을 땐 문제될 게 없어보이지만, UnassignedReferenceException은 할당되지 않은 SerializeFIeld를 접근하기만 해도 발생하는 유니티 시스템 에러이기 때문에 해당 오류가 발생한다.
반응형
'Workspace > Unity3d' 카테고리의 다른 글
[Addressable] 번들 패킹 및 네이밍 설정 (0) | 2023.03.27 |
---|---|
[Addressable] AnalyzeRule 시스템과 GroupSchema 활용 예제 (2) | 2023.03.27 |
[Unity3d] Exception occurred inside BeeDriver: System.IO.IOException 이슈 (0) | 2023.03.24 |
[Unity3d] 전처리 (0) | 2023.03.24 |
[UnityEditor] Preferences/Settings 커스텀 설정 추가 가이드 (0) | 2023.03.24 |