如何每60秒从滑块中减去c#

时间:2017-08-27 21:15:31

标签: c# unity3d

我尝试获得一个耐力滑块,它的工作就像能量每60秒它从滑块中减去1但是此刻我的脚本等待60秒并且它立刻减去滑块的所有耐力点 我该怎么做才能每60秒工作一次,每60秒从滑块中减1? 这是我的代码

{
  "blah0": "zeroblah",
  "Array": [
    {
      "blah1": [
        "key1:val1"
      ],
      "foobar0": "barfoo0",
      "foobar1": "barfoo1"
    }
  ]
}

2 个答案:

答案 0 :(得分:2)

您所要做的就是将该代码放在while循环中,以便它永远重复,直到您希望它停止为止。

bool keepSubstracting = true;

IEnumerator Start()
{
    //Wait for 60 secs.
    WaitForSeconds waitTime = new WaitForSeconds(60);
    while (keepSubstracting)
    {
        yield return waitTime;
        subtractstam();
    }
}

void stop()
{
    keepSubstracting = false;
}

答案 1 :(得分:2)

这应该有效,假设您的滑块具有最大值> 5,只附上一个脚本。

void Start ()
{
    mySlider.maxValue = 100 ; // If not already set in the inspector
    StartCoroutine( subtractStamPeriodically() ) ;    
}

private IEnumerator subtractStamPeriodically()
{
    WaitForSeconds wait = new WaitForSeconds( 60 ) ;
    while( true )
    {
        yield return wait  ;
        subtractStam();
    }
}

private void subtractStam()
{
    mySlider.value -= 5;
}