Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想在Unity和don';不要也重置变量_C#_Unity3d - Fatal编程技术网

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