C# 我想在Unity和don';不要也重置变量
我想重置统一级别,而不重置硬币金额变量和丢失计数器变量。我使用了C# 我想在Unity和don';不要也重置变量,c#,unity3d,C#,Unity3d,我想重置统一级别,而不重置硬币金额变量和丢失计数器变量。我使用了playerprefs,但变量重置对我也不起作用 public void EndGame() { LoseCounter++; Invoke("Restart", restartDelay); } public void Restart() { savedata(); SceneManager.LoadScene(SceneManager.GetActiveScene().name);
playerprefs
,但变量重置对我也不起作用
public void EndGame()
{
LoseCounter++;
Invoke("Restart", restartDelay);
}
public void Restart()
{
savedata();
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
loaddata();
}
public void savedata()
{
PlayerPrefs.SetInt("coinamount", ct.coinAmount);
PlayerPrefs.SetInt("losecounter", LoseCounter);
PlayerPrefs.Save();
}
public void loaddata()
{
ct.coinAmount = PlayerPrefs.GetInt("coinamount");
LoseCounter = PlayerPrefs.GetInt("losecounter");
}
文字
public int coinAmount;
public Text text;
void Start()
{
text = GetComponent<Text>();
}
void Update()
{
text.text = coinAmount.ToString() + " coins";
}
公共金额;
公共文本;
void Start()
{
text=GetComponent();
}
无效更新()
{
text.text=coinAmount.ToString()+“coins”;
}
确保在Start()方法中调用loaddata()
调用“加载场景”方法后,将不会调用该方法下的代码行
因此,请确保在Start方法或OnEnable中调用loaddata()
希望这会有所帮助。确保您正在Start()方法中调用loaddata() 调用“加载场景”方法后,将不会调用该方法下的代码行 因此,请确保在Start方法或OnEnable中调用loaddata() 希望这能有所帮助。我支持在
Start()方法中加载数据的说法。
但是作为一般规则,这些游戏数据通常不应该是场景的一部分,例如,您可能需要实现一个示例,这样它们就不会是场景的一部分。我支持在Start()
方法中加载数据的说法。
但是作为一般规则,这些游戏数据通常不应该是场景的一部分,例如,您可能需要实现一个示例,这样它们就不会是场景的一部分。最简单的方法是告诉unity不要破坏您的游戏管理器:调用DontDestroyOnLoad(this.gameObject)在MonoBehavior清醒时,在场景重新加载后保持其活动
最简单的方法是告诉unity不要破坏游戏管理器:在MonoBehavior唤醒时调用DontDestroyOnLoad(this.gameObject),在场景重新加载后使其保持活动状态
在重新启动中,我删除了工作中的括号,不要使用PlayerPrefs来存储游戏状态。尝试使用静态变量在重新启动中,我删除了工作中的括号,不要使用PlayerPrefs来存储游戏状态。尝试使用静态变量谢谢你这么帮我match@THEFrogEitan如果这里的答案解决了你的问题,我建议你挑一个来回答你的问题。欢迎来到stackoverflow:D@THEFrogEitan如果这里的答案解决了你的问题,我建议你选择一个作为你问题的答案。欢迎来到stackoverflow:D