Unity 底层框架篇 (四)Unity Asset序列化

1、写一个类 继承自 ScriptableObject

2、加上[CreateAssetMenu(fileName="序列化的目标文件名不需要后缀"), menuName="在编辑器里菜单按钮的名字", order=xxx ]   order表示在菜单中的位置排序

using System.Collections.Generic;
using UnityEngine;

// asset 想要被序列化 必须继承自 ScriptableObject  不需要加任何序列化的标签 
[CreateAssetMenu(fileName = "MyTestAssets", menuName = "MyCreateAssets", order = 0)]
public class MyAssetsSerializeTest : ScriptableObject
{
    public int Id;
    public string Name;
    public List<string> TestList;
}

这里需要注意: 字典是不能序列化的 需要想办法转成2个List 什么的

note:  这里的字段 都不需要加特殊特性标签

 

 

 

 反序列化使用asset文件

    void ReadTestAssets()
    {
        MyAssetsSerializeTest myAssetsSerializeTest =
            AssetDatabase.LoadAssetAtPath<MyAssetsSerializeTest>("Assets/MyTestAssets.asset");
        Debug.Log(myAssetsSerializeTest.Id);
        Debug.Log(myAssetsSerializeTest.Name);
    }

 

posted @ 2021-04-25 22:32  一个新星的诞生  阅读(56)  评论(0)    收藏  举报