【问题标题】:Check if player is stationary for more than 3 seconds and then do something Unity检查玩家是否静止超过 3 秒,然后执行 Unity
【发布时间】:2019-01-12 23:40:27
【问题描述】:

我已经开始使用 Unity,并且正在制作我的第一个平台游戏。我想添加一个功能,如果玩家(在水平轴上)停止移动 3 秒,他就会死亡并重新开始游戏。

对于第一部分(检查玩家是否在移动),我只是这样做:

if(Mathf.Abs(rb.velocity.x) == 0)
    {
        Example();
    }

我不确定将这段代码放在哪里,我需要帮助来实现“等待 3 秒”部分。任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您可以像这样实现时间部分。 Time.deltaTime为您提供该特定帧的时间。只要您的播放器不移动,您就可以添加到计时器中。

    float timePassed = 0.0f;
    
    if(Mathf.Abs(rb.velocity.x) == 0)
    {
        Example();
        timePassed += Time.deltaTime;
    }
    else
        timePassed = 0.0f;
    

    然后当你的计时器大于 3 秒时,你可以杀死你的玩家。祝你好运!

    【讨论】:

    • 谢谢,“Time.deltaTime”正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2017-08-27
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多