直接上代码:
//创建方法一
//可以在Create菜单创建
[CreateAssetMenu]
public class TestScpritObject : ScriptableObject //继承ScpritableObject
{
public List<PlayerInfo> myPlayerInfo = new List<PlayerInfo>();
}
//创建方法二
public class MyScpeitableObjectEditor
{
[MenuItem("Assets/创建ScpritObject")]
static void CreateScpritableObject()
{
TestScpritObject data = (TestScpritObject)AssetDatabase.LoadAssetAtPath("Assets/MyTestScpriteObject.asset", typeof(TestScpritObject));
if (data == null)
{
data = ScriptableObject.CreateInstance<TestScpritObject>();
AssetDatabase.CreateAsset(data, "Assets/MyTestScpriteObject.asset");
AssetDatabase.SaveAssets();
}
}
}
//数据序列化
[System.Serializable]
public class PlayerInfo
{
//数据取消序列化
[System.NonSerialized]
public int id;
public string name;
private int age;
}
本文介绍了在Unity中使用ScriptableObject进行资源管理和数据序列化的两种方法。第一种是在Create菜单中创建,通过[CreateAssetMenu]属性标记类,实现快速创建资源文件;第二种是通过代码动态创建并保存ScriptableObject实例,确保数据的持久化。此外,还展示了如何使用System.Serializable特性进行数据成员的序列化,以及如何使用System.NonSerialized特性取消特定数据成员的序列化。
4505

被折叠的 条评论
为什么被折叠?



