Unity Slider作为计时器减少

时间:2016-01-10 23:11:26

标签: c# unity3d timer slider countdowntimer

我正在尝试制作一个倒数计时器但是使用Unity Slider而不是文字,但我遇到了一些问题。所以我目前的代码是:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class CountdownTimer : MonoBehaviour {
    //public Text timeText;

    public float startingTime = 100.0f; 
    public Slider Timer;

    // Use this for initialization
    void Start () {
        Timer = GetComponent<Slider> ();
    }

    // Update is called once per frame
    void Update () {

        startingTime -= Time.deltaTime;
        Timer.value = startingTime;

        if (startingTime <= 0)
        {       
            startingTime = 0;
            Application.LoadLevel ("GameOver");         
        }
    }
}

如果我用文本替换滑块但反之亦然,则此代码有效。我的第二个问题是当我将此代码附加到我的播放器并从层次结构中链接滑块时,它会在我开始游戏时消失。

最后一个问题是当我尝试添加一个On Value Changed时,我可以将它链接到我的播放器以从代码中获取功能但是从我的研究开始我没有任何东西可以将它链接到因为我只有开始和更新。 Scrollbars可以使用私有空格并以这种方式接收动态浮动但我还没有能够使用Sliders

实施例: On Change Value

1 个答案:

答案 0 :(得分:0)

它不适用于您说的滑块,您需要在滑块组件上将最大值传递为100,或者在值介于0和1之间时使用1。

UI项目必须位于要渲染的Canvas下,因此将其附加到播放器会使其从渲染中丢弃。您可以将带有滑块的Canvas作为子对象放在播放器对象下。但为了清晰起见,我会将画布分开(POV)。

您添加的图片显示您传递了一个对象,但现在您需要指定一个方法。单击No Function,它将显示所有可用的方法。