【问题标题】:Can't draw Serializable class on Unity Inspector无法在 Unity Inspector 上绘制 Serializable 类
【发布时间】:2018-11-26 13:16:35
【问题描述】:

这是我的示例类和 MonoBehaviour 脚本:

using UnityEngine;
using System;

[Serializable]
public class TestSerializableClass
{
    public int a;
    public string b;
}

public class TestScript : MonoBehaviour
{
    public TestSerializableClass field1;
    [HideInInspector] public TestSerializableClass field2;
}

这是 MonoBehaviour 脚本的编辑器脚本

using UnityEditor;

[CustomEditor(typeof(TestScript))]
public class TestScriptEditor : Editor
{
    SerializedProperty testClass;

    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        SerializedProperty testField = serializedObject.FindProperty("field2");
        EditorGUILayout.PropertyField(testField, true);

    }
}

This is how my inspector for TestScript looks.

为什么它不像第一个那样绘制“field2”变量?

我可以使用编辑器脚本和属性字段吗?怎么样?

(includeChildre 标志为真)

【问题讨论】:

    标签: unity3d drawing editor serializable inspector


    【解决方案1】:

    从 field2 中移除 HideInInspector 属性

    【讨论】:

    • 谢谢!这就是问题所在!您不能使用 DrawDefaultInspector() 并自己绘制隐藏的字段。您需要绘制所有内容或不绘制任何内容。
    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多