【问题标题】:Unity Slider decrease as timerUnity Slider随着计时器减少
【发布时间】:2016-01-11 22:20:53
【问题描述】:

我正在尝试制作倒数计时器,但使用 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 时,我可以将它链接到我的播放器以从代码中获取函数,但通过我的研究,我实际上没有任何东西可以链接到它,因为我只有启动和更新。滚动条可以使用私有空隙并以这种方式接收动态浮动,但我还不能使用滑块

示例: On Change Value

【问题讨论】:

    标签: c# unity3d timer slider countdowntimer


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的计时器/滑块工作,它只是当我玩游戏时,我拖到我的脚本的滑块会消失,但如果我在玩游戏的时候把它放在那里,它会完全正常我想要什么。但现在它一直在消失
    • 修复它,将脚本添加到 Slider 本身并将其链接到自身。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多