我在使用 ScriptableObjects 作为 Unity 应用程序中的保存对象时遇到问题。当我尝试将值写入它们时,一切都很好,但是如果我想关闭应用程序并加载 ScriptableObject 的值,这些值将重置为它的最后一个值。这破坏了我使用它们来保存游戏值的想法。
我尝试调试将值保存到我的一个 Scriptableobjects 的整个过程,这似乎有效,每当我暂停场景时,我的 Scriptableobject 中的所有值。但是,只要我不暂停场景,Scriptableobject 就不会像看起来那样采用任何值(这里有一些关于此的示例代码)
[CreateAssetMenu(fileName = "stats1", menuName = "ScriptableObjects/Values", order = 1)]
public class ValuesSo : ScriptableObject
{
public string Name;
}
public static class LifeValues
{
public static string Name;
}
public class MainGameMB: MonoBehaviour
{
//I drag and drop the Scriptableobject here so I have it referenced
public ValuesSo Savedstats1;
void Start()
{
Savedstats1.Name = LifeValues.Name;
}
//this is called by a Button call
public void save()
{
LifeValues.Name= Savedstats1.Name;
}
}
(这只是一些示例代码,应该是对该主题感兴趣的所有内容。如果您有任何问题或需要更多背景知识,请询问,我可以尝试提供)