【问题标题】:Unity3d progress barunity3d进度条
【发布时间】:2015-07-26 12:56:40
【问题描述】:

我正在使用 unity3D 开发游戏,我需要帮助制作进度时间栏,以便在收集特定物品时添加时间,从而继续游戏。

【问题讨论】:

  • 你可以从这里开始...stackoverflow.com/help/how-to-ask
  • 网上有很多例子可以统一创建进度条。您应该首先在谷歌周围搜索并尝试找出哪个适用于您的情况。如果有人已经问过类似的问题并得到了答案,你不应该在不付出任何努力的情况下问任何问题。

标签: c# unity3d unityscript unity3d-gui


【解决方案1】:

创建一个填充类型的 UI 图像。根据进度条使用水平或垂直填充。然后,您可以从脚本内部操纵图像的值。我会给你一个非常简单的c#例子。其余的你可以使用 google 并阅读统一脚本 API。

public class Example: MonoBehaviour {

    public Image progress;

    // Update is called once per frame
    void Update () 
    {
            progress.fillAmount -=  Time.deltaTime;
    }
}

【讨论】:

  • 非常感谢。真的好用
  • @A.Njuguna 如果对您有帮助,请随时接受我的回答。
【解决方案2】:

你可以使用滑块 en slider.setvalue

例子:

//to use this add first a slider to your canvas in the editor.
public GameObject sliderObject; //attachs this to the slider gameobject in  the editor or use Gameobject.Find
Slider slider = sliderObject.GetComponent<Slider>();
float time;
float maxtime; //insert your maxium time

void start(){
    slider.maxValue = maxtime;
}

void update()
{
    time += Time.deltaTime;
    if (time < maxtime)
    {
        slider.value = time;
    }
    else
    {
        Destroy(sliderObject);
        //time is over, add here what you want to happen next
    }
}

【讨论】:

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
  • @nate,为什么这么粗鲁?进度条是一个滑块,每帧都设置为你的(相对)值。只需添加一个滑块,填写菜单中的字段并使用 slider.setvalue 更新它。这是制作进度条的最快方法。
  • 无意粗鲁。我将此标记为“不是答案”,因为在我看来它更适合发表评论,而不是答案。如果您可以添加代码示例和说明,我会很高兴地投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多