【问题标题】:How to add a delay to a unity score如何将延迟添加到统一分数
【发布时间】:2019-10-31 14:37:37
【问题描述】:

我正在统一制作游戏,我想添加一个简单的评分系统,只要你适应一个形状,它就会增加 +1,在第一个形状之后,它们都以 1 秒的间隔出现,但还有 3 秒的时间第一个。 我的问题是如何从关卡开始到第一个形状的那一刻进行停机? 这是我的代码:

using UnityEngine;
using UnityEngine.UI;

public class ScoreManager : MonoBehaviour
{
    public Text scoreText; 
    public float scoreCount;
    public float pointsPerSecond;
    public bool scoreIncreasing;

    void Update()
    {
        if (scoreIncreasing)
        {
            scoreCount += pointsPerSecond * Time.deltaTime;
        }

        scoreText.text = "Score: " + Mathf.Round(scoreCount);
    }
}

【问题讨论】:

  • 您好,“停机时间”是什么意思?
  • 我想要一种方法,让计时器可以在关卡本身启动 3 秒后启动
  • 然后使用docs.unity3d.com/ScriptReference/…在前面等待3s,然后在需要做的事情时,等待1秒,重复

标签: c# unity3d


【解决方案1】:

Time.time 已经记录为秒,所以再做一个浮点数来跟踪应该保持分数的时间,该值将是 3.00。如果总经过时间超过该时间,则跟踪分数。

【讨论】:

  • 也许提供一些示例代码,以便我们更清楚地遵循?
【解决方案2】:

我假设您正在制作 Maze Runner-esque 游戏?在这种情况下,您可以有条件让系统知道它何时可以开始将时间转换为点。 例如,对于前 3 秒,您将有一个布尔值作为“假”,这意味着运行尚未开始。然后在经过的时间之后,您将所述布尔值更改为“true”。

因此,您将在 3 秒后添加您的积分。至于当你通过一个“形状”时,你可以让它们基于碰撞。如果您与环相撞,则 +1 分。 不过,就我个人而言,我可能会因为获得上述戒指而获得至少 5 或 10 分。奖励他们进行技能检查!

【讨论】:

  • 我正在制作一款更像 Super Hexagon 的游戏,并且在过去 15 分钟内我一直在尝试制作你告诉我的内容,而且我对编码也很陌生,所以我可以不要让它发生
  • 别担心,你会想要这样的东西(根据你上面的):` public bool scoreIncreasing = false;` ` public float startTimer = 3;` ` void Update()` ` {` ` if (startTimer > 0){` ` startTimer -= Time.deltaTime;` } else {` ` startIncreasing = true;` ` }` ` }`
  • 我想我做到了,我也统一启用了它,但它仍然不起作用
猜你喜欢
  • 2019-04-27
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 2017-08-08
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多