private Level _myTarget;
private SerializedObject _mySerializedObject; //保存目标对象的序列化对象
private SerializedProperty _mySerializedTotalTime; //保存序列化对象中的某一个属性
private void OnEnable()
{
_myTarget = (Level)target;
InitLevel();
}
private void InitLevel()
{
_mySerializedObject = new SerializedObject(_myTarget);
//获取对应变量名的属性
_mySerializedTotalTime = _mySerializedObject.FindProperty("_totalTime");
}
private void DrawLevelDataGUI()
{
//绘制整形域 并且关卡时间要大于0
//赋值的原因是 当整形域的里输入的值修改的时候 会使用该值的新的值做判断
_myTarget.TotalTime = EditorGUILayout.IntField("TotalTime",Mathf.Max(0,_myTarget.TotalTime));
//绘制属性域
EditorGUILayout.PropertyField(_mySerializedTotalTime);
}
可以看到如下效果