inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

1번 강의 IdentifiedObjectEditor 스크립트에서 에러가 납니다.

630

미니개발자

작성한 질문수 1

0

NullReferenceException: SerializedObject of SerializedProperty has been Disposed.

UnityEditor.SerializedProperty.get_propertyType () (at <04e0fdd0fac34142a67859e48fe87770>:0)

UnityEditor.EditorGUILayout.IsChildrenIncluded (UnityEditor.SerializedProperty prop) (at <04e0fdd0fac34142a67859e48fe87770>:0)

UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUILayoutOption[] options) (at <04e0fdd0fac34142a67859e48fe87770>:0)

IdentifiedObjectEditor.OnInspectorGUI () (at Assets/Scripts/Editor/IdentifiedObjectEditor.cs:99)

UnityEditor.UIElements.InspectorElement+<>c__DisplayClass74_0.<CreateInspectorElementUsingIMGUI>b__0 () (at <04e0fdd0fac34142a67859e48fe87770>:0)

 

이런 에러인데 에러가 나는 시점이 인스펙터에서 코드네임을 변경한 후 엔터키를 눌렀을 때 발생합니다.

EditorGUILayout.PropertyField(displayNameProperty);

이름 변경 후 displayName을 그려줄 때 에러가 나는데 아무래도 OnEable 함수에서 FindProperty함수로 값을 제대로 가져오지 못하고 있는 것 같은데 어떻게 해야할까요?

    [SerializeField] private Category[] categories;

    [SerializeField] private Sprite icon;

    [SerializeField] private int id = -1;

    [SerializeField] private string codeName;

    [SerializeField] private string displayName;

    [SerializeField] private string description;

 

        categoriesProperty = serializedObject.FindProperty("categories");
        iconProperty = serializedObject.FindProperty("icon");
        idProperty = serializedObject.FindProperty("id");
        codeNameProperty = serializedObject.FindProperty("codeName");
        displayNameProperty = serializedObject.FindProperty("displayName");
        descriptionProperty = serializedObject.FindProperty("description");

혹시 제가 직접 타이핑한게 문제일까 싶어서 코드를 다운로드 받고 복붙해봤는데도 에러가 발생합니다.

이 현상을 그대로 두고 진행해도 될까요?

이름 변경은 제대로 됩니다.

unity modules

답변 1

1

Developer G

수강해주셔서 감사합니다.

수업 자료를 복붙하셨는데도 문제가 생기신다면 유니티 내부에 뭔가 꼬인 등 프로젝트 자체의 문제일 가능성이 높습니다. 여러 번의 테스트에서 최소한 저는 수강생분과 같은 문제가 한번도 생긴 적이 없습니다. 이름 변경이 제대로 되고, GUI가 그려지는데도 문제가 없으시다면 그냥 진행하셔도 됩니다. 오류가 뜬게 꺼림직하시다면 완성된 프로젝트를 압축해제하셔서 그 프로젝트로 이후를 진행하시면 될 것 같습니다.

감사합니다.

0

미니개발자

유니티 버전 2023.2에선 에러가 발생했는데 2023.1에서는 에러가 발생하지 않는 것 같습니다.

2

Developer G

말씀하신 부분을 확인해봤습니다. 말씀해주신대로 2023.2.14f 버전에서 해당 에러가 뜨는걸 확인했구요, 이번 버전과 Beta인 Unity 6에서는 문제가 없는 것으로 보아 Engine Bug로 보입니다. 해당 문제는 Skill System Window에서 IO객체의 CodeNam을 변경할 때는 생기지 않으므로 무시하고 진행하셔도 됩니다.

추가적으로 해당 부분을 확실히 수정할 수는 있는 방법은 IdentifiedObjectEditor 140번쨰 줄 아래에

EditorGUILayout.EndVeritical();
EditorGUILayout.EndHorizontal();
serializedObject.ApplyModifiedProperties();
return;

를 추가하시면 됩니다.
Raname을 하자마자 정렬들을 모두 끝내고 Apply를 한 다음 OnInpectorGUI를 바로 빠져나가는 것입니다.
말씀드렸듯이 이는 Engine Bug이고 Skill System Window에서 제어할 때는 문제가 없으므로 굳이 수정을 안하셔도 됩니다.


감사합니다.

Indicator와 SelectionAction 및 SearchAction 간의 관계에 대해 질문있습니다.

0

70

2

ChargingState에서 질문이 있습니다.

0

49

1

Effect.GetData 함수 질문있습니다.

0

45

2

CanTransitionToSelf 질문 있습니다.

0

53

2

Stat의 MaxValue에 관하여 질문이 있습니다.

0

42

1

Stat vs StatScaleFloat

0

75

4

애니매이션 버그가 있는것 같습니다.

0

65

2

StatsOverride질문이 있습니다.

0

50

2

SetBonusValue함수 질문있습니다.

0

46

2

오늘 수강시작한 취준생입니다.

0

49

1

사소하지만 에디터 관련 질문있습니다

0

69

1

스킬시스템을 데이터 테이블화 하는 법에 대해 감이안잡혀서 질문드립니다.

0

146

2

TargetSearcher에 대해서 질문이 있습니다

0

52

1

돌진해서 몸박을하면 피격자를 날리면서 데미지를 입히는 스킬은 이 시스템에서 어떻게 만들 수 있을까요??

0

116

2

스킬 관련 질문입니다

0

110

2

통일된 Stat을 사용하지 않고 모듈화 방식으로 Stats를 만드신 이유가 궁금합니다.

0

152

1

Effect에 기능 확장에 대해서 질문이 있습니다.

0

149

2

SkillData 구조체 질문

0

122

1

스킬트리 저장 질문입니다

0

135

2

BT와 FSM을 활용해 몬스터 AI 구현

0

350

2

MonoStateMachine을 만든 이유가 잘 이해가 가지 않습니다.

0

128

1

근접 콤보 공격을 만들고 싶습니다.

0

153

1

하나의 스킬 내에서 타겟, 이펙트가 여러번 바뀌게 하는 방법이 궁금합니다.

0

190

1

올해에 예정된 새로운 강의가 있으신지요?

0

115

2