【发布时间】:2019-11-28 22:53:27
【问题描述】:
我正在尝试在加载到下一个场景时增加预制件的值(当游戏开始时预制件正在实例化),但我在使用 playerprefs 加载增量值时遇到问题。
这是我在GunScript.cs 中设置播放器首选项值的地方
GunScript.cs
void Awake() {
PlayerPrefs.SetFloat("Inaccuracy", inaccuracy);
Debug.Log(PlayerPrefs.GetFloat("Inaccuracy"));
}
每当我点击下一个按钮时,都会加载相同的场景,我希望在 LevelLoad.cs 脚本中将这个不准确值增加 2。
LevelLoad.cs
public void OnNext(){
PlayerPrefs.SetFloat("Inaccuracy",
PlayerPrefs.GetFloat("Inaccuracy") + 2);
print(PlayerPrefs.GetFloat("Inaccuracy"));
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
它正在打印增量值,但prefab 中没有增加值。
【问题讨论】:
-
你绝对不应该将 PlayerPrefs 用于那种东西,它并不意味着在运行时不断更新。你为什么不使用单例、静态变量或其他的东西?
-
此行无效:
PlayerPrefs.GetFloat("Inaccuracy") + 2);您只有一个(,但有两个)。
标签: unity3d