首页 > 解决方案 > playerprefs 阻止了我的值在一段时间后更新。在使用 playerpref 之前它正在更新。C# 统一

问题描述

在我的游戏中,有一个值会在一段时间后更新。如果值在游戏过程中发生变化,它会在一段时间后更新。但是当我使用 playerprefs 时,值在特定时间后停止更新。如果值在游戏期间发生变化,它会继续存储该值,这意味着 playerprefs 正在工作,但值不会更新。

变量声明

    public Text CovidBudget;
    public int Covid_Budget;

    public Text TimerText_budget;
    public float timeValue_budget = 30;

改变值的函数Covid_Budget


    public void covid_budget()
    {
        Covid_Budget = PlayerPrefs.GetInt("C_B", (int)(0.01 * economy_worth));
        CovidBudget.text = Covid_Budget.ToString();
     }

显示值应该更新的时间的函数。



public void DisplayTime_budget(float timeToDisplay_b)
    {
        if (timeToDisplay_b < 0)
        {
            timeToDisplay_b = 0;
        }
        else if (timeToDisplay_b > 0)
        {
            timeToDisplay_b += 1;
        }
        float minutes = Mathf.FloorToInt(timeToDisplay_b / 60);
        float seconds = Mathf.FloorToInt(timeToDisplay_b % 60);

        TimerText_budget.text = string.Format("{0:00}:{1:00}", minutes, seconds);
    }

运行时间并更新值的代码Covid_Budget

void Update()
{
if (timeValue_budget > 0)

            {
                timeValue_budget -= PlayerPrefs.GetFloat("bud_time", Time.deltaTime);
            }
            else
            {
                timeValue_budget = PlayerPrefs.GetFloat("bud_time", 30);
                covid_budget();
                
            }

            DisplayTime_budget(timeValue_budget);
}

标签: c#unity3d

解决方案


推荐阅读