unity中将某个类的对象存储为一个asset对象,以及需要时的加载。
创建一个类继承自ScriptableObject,使得该对象可序列化存储
public class Agent:ScriptableObject
{
public string name;
}
将Agent类对象存储下来
void SaveAgentInfo()//将对象信息以.asset的形式存在Resource文件下
{
Agent agent = ScriptableObject.CreateInstance<Agent>();//创建可序列化对象
agent.name = "小明他大爷";
string path = "Assets/Resources/agent.asset";
UnityEditor.AssetDatabase.CreateAsset(agent,path);
UnityEditor.AssetDatabase.SaveAssets();
UnityEditor.AssetDatabase.Refresh();
}
从Resources文件夹中加载上面存储的.asset
Agent LoadAgentInfo()
{
string path = "Agents/agent";
Agent agent = Resources.Load<Agent>(path);
return agent;
}