untity的SerializedProperty介绍

SerializedProperty是Unity中用于访问和修改序列化对象属性的类。在Unity中,序列化对象是指可以在Inspector面板中显示和编辑的对象,例如组件、脚本等。

SerializedProperty提供了访问和修改序列化对象属性的方法,可以通过它来获取属性的值、设置属性的值、判断属性是否可见、获取属性的类型等操作。通过使用SerializedProperty,我们可以在运行时动态地访问和修改序列化对象的属性,从而实现一些自定义的编辑器功能。

使用SerializedProperty需要先创建一个SerializedObject对象,然后通过FindProperty方法获取到要操作的属性的SerializedProperty对象。之后就可以通过SerializedProperty对象来访问和修改属性的值了。

下面是一个示例代码,演示了如何使用SerializedProperty来访问和修改一个组件的属性:

using UnityEditor;
using UnityEngine;

public class MyEditorWindow : EditorWindow
{
    private SerializedObject serializedObject;
    private SerializedProperty myProperty;

    private void OnEnable()
    {
        // 创建一个SerializedObject对象
        serializedObject = new SerializedObject(target);

        // 获取要操作的属性的SerializedProperty对象
        myProperty = serializedObject.FindProperty("myProperty");
    }

    private void OnGUI()
    {
        // 在Inspector面板中显示myProperty属性的值
        EditorGUILayout.PropertyField(myProperty);

        // 应用属性的修改
        serializedObject.ApplyModifiedProperties();
    }
}

通过使用SerializedProperty,我们可以在自定义的编辑器窗口中访问和修改序列化对象的属性,从而实现一些高级的编辑器功能,比如自定义的Inspector面板、自定义的属性面板等。

posted @ 2023-08-25 13:53  冷夜 - 网游编程技术  阅读(705)  评论(0编辑  收藏  举报