Unity Slider 减少作为定时器

Unity Slider decrease as timer

我正在尝试制作倒数计时器,但使用的是 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");         
        }
    }
}

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

最后一个问题是,当我尝试添加一个 On Value Changed 时,我可以 link 它给我的播放器以从代码中获取功能,但是通过我的研究,我真的无能为力 link 因为我只有开始和更新。滚动条可以使用 private voids 并以这种方式接收动态浮动,但我还不能使用 Sliders

示例: On Change Value

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

UI 项必须在 Canvas 下才能呈现,因此将其附加到您的播放器会使它从呈现中丢弃。您可以将带有滑块的 Canvas 作为子对象放在播放器对象下。但为了清楚起见,我会将 canvas 分开(POV)。

您添加的图片显示您传递了一个对象,但是现在您需要分配一个方法。单击无功能,它将显示所有可用的方法。