Unity Editor 知识点整理(使用Inspector 查看自定义属性)

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);
}

可以看到如下效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43388137/article/details/122233010
今日推荐