在 Unity3D 检查器中显示 class 的成员
Show members of a class in Unity3D inspector
我需要像屏幕截图一样在对象检查器中编辑此结构:
Structure
编辑
我有一个附加到我的主要对象的脚本。它有一个名为 TestData 的成员,它本身还有另外两个成员 I 和 F.
当我单击主对象时,如何让 Unity Inspector 通过其成员(I、F)而不是对 TestData 的引用来编辑 TestData?
在 Unity 中创建脚本并将其附加到游戏对象。脚本必须来自 MonoBehaviour
您可以向脚本添加 public 个变量并在检查器中查看它们。
c#:
public Vector3 StartPoint;
您可以将 [System.Serializable]
添加到 class:
[System.Serializable]
public class TestData
{
public int I;
public int F;
}
或者,如果您希望检查器显示默认编辑器面板以外的内容,您可以为您的类型定义一个 CustomPropertyDrawer。
[CustomPropertyDrawer(typeof(MyScript))]
public class MyScriptDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
//...
EditorGUI.BeginProperty(position, label, property);
EditorGUI.LabelField(new Rect(x, y, w, h), "title");
EditorGUI.PropertyField(rect, I, GUIContent.none);
//...
}
}
我需要像屏幕截图一样在对象检查器中编辑此结构: Structure
编辑
我有一个附加到我的主要对象的脚本。它有一个名为 TestData 的成员,它本身还有另外两个成员 I 和 F.
当我单击主对象时,如何让 Unity Inspector 通过其成员(I、F)而不是对 TestData 的引用来编辑 TestData?
在 Unity 中创建脚本并将其附加到游戏对象。脚本必须来自 MonoBehaviour
您可以向脚本添加 public 个变量并在检查器中查看它们。
c#:
public Vector3 StartPoint;
您可以将 [System.Serializable]
添加到 class:
[System.Serializable]
public class TestData
{
public int I;
public int F;
}
或者,如果您希望检查器显示默认编辑器面板以外的内容,您可以为您的类型定义一个 CustomPropertyDrawer。
[CustomPropertyDrawer(typeof(MyScript))]
public class MyScriptDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
//...
EditorGUI.BeginProperty(position, label, property);
EditorGUI.LabelField(new Rect(x, y, w, h), "title");
EditorGUI.PropertyField(rect, I, GUIContent.none);
//...
}
}