【问题标题】:C# countdown after opening box in the Unity game engineUnity游戏引擎中开箱后的C#倒计时
【发布时间】:2017-12-17 19:38:30
【问题描述】:

我需要在打开盒子时访问 PC 或 Android 系统时间并保存它,然后从该时间开始倒计时 5 分钟。 5 分钟后,重新启用按钮以打开盒子。我尝试了很多方法,但都导致了死胡同。

public class Test : MonoBehaviour
{
    public Button boxButton;
    long previousOpenedBox;

    private void Update()
    {
        if (!boxButton.IsInteractable())
        {
            long diff = (DateTime.Now.Ticks - previousOpenedBox);
            //start counting down the time to re-enable the button.
        }
    }

    public void BoxClicked()
    {
        long previousOpenedBox = DateTime.Now.Ticks;
        boxButton.interactable = false;
    }
}

【问题讨论】:

  • 我们能看到您使用的至少一种方法吗?
  • 我尝试创建一个计时器,使用 Time.deltaTime 倒计时,不幸的是,当玩家在游戏中时它会倒计时。我尝试了相同的场景,但将结果保存在 playerprefs 中,但它会在退出时保存结果并在玩家打开游戏后立即重新开始计数......我尝试使用 DateTime.Now 获取时间并添加 5 分钟它,然后重新启用按钮来打开盒子,但是我这样得到了各种各样的错误。如果您需要粘贴代码,其中大部分不再可用,但如果有帮助,我可以尝试重新创建它!
  • 不描述你的代码做什么,你不能在这里复制粘贴它的相关部分吗?
  • 我重新创建了上一个脚本的某些部分并将其发布为问题的答案
  • 哎呀,你应该编辑你的答案,这会让事情变得混乱......无论如何......

标签: c# android visual-studio unity3d unity5


【解决方案1】:

我不知道为什么你在更新盒子时要实现你的打开逻辑,你应该把它们放在BoxClicked 方法中。这个最小的例子展示了如何处理阻塞延迟,并且应该为您指明正确的路径。

public class Test : MonoBehaviour
{
    private DateTime m_LastOpening;
    public Button m_BoxButton;

    public void BoxClicked()
    {
        DateTime now = DateTime.Now;

        // 5 minutes elapsed, you can open the box
        if ((now - m_LastOpening).TotalMinutes > 5)
        {
            m_LastOpening = now;
            m_BoxButton.interactable = false;
        }
        else // otherwise you have to wait
        {
            // ...
        }
    }
}

【讨论】:

  • 谢谢!我会尽快尝试你的建议!我猜 TotalMinutes、Miliseconds 等和 TimeSpan 对我来说真的很难理解,我想我需要更加努力地学习。在我尝试实现它之后,我会回到这里发布我的结果。再次感谢您!
  • 这不是很困难,但实际上代码有点简单。打开该框时,您将当前时间保存在类变量中的某个位置。当您再次尝试打开它时,您会看到当前时间和上次打开时间之间的差异(以分钟为单位)。如果大于 5,则允许打开该框。
  • 我对其进行了测试,并进行了一些修改和摆弄,使其适合我的项目。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2016-06-26
相关资源
最近更新 更多