using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Node : ScriptableObject {
public string Name;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FlowNode : Node {
public string Type;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GraphSerializationData : ScriptableObject {
public List<Node> list = new List<Node>();
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class TestSerializationTool {
[MenuItem("Assets/TestSerialization")]
static void TestSerialization() {
Debug.Log("TestSerialization");
GraphSerializationData data = ScriptableObject.CreateInstance<GraphSerializationData>();
string filePath = "Assets/testAsset.asset";
AssetDatabase.DeleteAsset(filePath);
AssetDatabase.CreateAsset(data, filePath);
AssetDatabase.Refresh();
FlowNode fn = ScriptableObject.CreateInstance<FlowNode>();
fn.Name = "lzz";
fn.Type = "123";
data.list.Add(fn);
AssetDatabase.AddObjectToAsset(fn, data);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}
上面的例子 演示 有继承关系的类都可以存储到.asset中。
可以尝试使用 : [PreferBinarySerialization]
参考:https://answers.unity.com/questions/842058/serializing-a-collection-of-scriptableobjects-to-a.html