SerializedProperty 序列化属性
SerializedProperty and SerializedObject are classes for editing properties on objects in a completely generic way that automatically handles undo and styling UI for prefabs.
SerializedProperty和SerializedObject类用于对象编辑器属性,是完全通用的方法,自动处理撤销和为预设的UI样式。
Note: This is an editor class. To use it you have to place your script in Assets/Editor inside your project folder. Editor classes are in the UnityEditor namespace so for C# scripts you need to add "using UnityEditor;" at the beginning of the script.
注意:这是一个编辑器类,如果想使用它你需要把它放到工程目录下的Assets/Editor文件夹下。编辑器类在UnityEditor命名空间下。所以当使用C#脚本时,你需要在脚本前面加上 "using UnityEditor"引用。
SerializedProperty is used in conjunction with SerializedObject and Editor classes.
SerializedProperty与SerializedObject和Editor类配合使用。
// C# example: A custom Inspector for Transform components.
//自定义Transform组件的检视面板
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Transform))]
public class TransformInspector : Editor {
SerializedObject m_Object;
SerializedProperty m_Property;
void OnEnable () {
m_Object = new SerializedObject (target);
m_Property = m_Object.FindProperty ("m_LocalPosition.x");
}
void OnInspectorGUI () {
// Grab the latest data from the object
//从对象抓取的最新数据
m_Object.Update ();
// Editor UI for the property
//属性的编辑器界面
EditorGUILayout.PropertyField (m_Property);
// Apply the property, handle undo
//应用属性,撤销
m_Object.ApplyModifiedProperties ();
}
}