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)。
您添加的图片显示您传递了一个对象,但是现在您需要分配一个方法。单击无功能,它将显示所有可用的方法。
我正在尝试制作倒数计时器,但使用的是 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)。
您添加的图片显示您传递了一个对象,但是现在您需要分配一个方法。单击无功能,它将显示所有可用的方法。