【问题标题】:When pausing game(using a bool and time.timescale) it doesn't pause the score counter暂停游戏时(使用 bool 和 time.timescale)它不会暂停计分器
【发布时间】:2014-08-13 02:00:07
【问题描述】:

这将是我的第一个问题,所以请继续放轻松;)

我正在使用我有限的知识、教程和谷歌上的故障排除在 Unity 中构建我的第一个游戏,但我似乎无法解决这个问题

我有一个计算分数的脚本(使用 GUIText)和另一个用于暂停游戏的脚本(使用时间刻度),您可能已经猜到了,但是当我暂停游戏时它不会暂停分数。

 Script for Pausing:



     var isPaused : boolean = false;



        function Update()
        {
            if(Input.GetKeyDown("p"))
            {
                Pause();
            }
        }

        function Pause()
        {
            if (isPaused == true)
            {
                Time.timeScale = 1;
                isPaused = false;
            }
            else
            {
                Time.timeScale = 0;
                isPaused = true;
            }
            }


Script for Score:


var Counter : int = 100000;   
var Substractor : int = 0;  
var Score : int = Counter - Substractor;   
function Update (
) {
    Score--;
    guiText.text = "Score: "+Score;
}

分数脚本附加到带有 gui 文本的游戏对象,暂停游戏的脚本附加到玩家

另一个问题是,当我移动时(使用箭头键),然后按下暂停,然后取消暂停,播放器移动得更快且不可预测,但只有当我按下暂停时按下箭头按钮时才按下暂停没有问题,这是一个小错误,我会尝试自己修复,只是想我会在此处添加它以供那些对此问题也有简单答案的人使用

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

    我只从其他游戏框架中知道这个问题,我没有统一的经验。但它应该以与在其他框架中相同的方式工作。你有两个选择:


    在每个渲染帧之后都会调用更新!因此,您的 timescale 不会影响调用 update 的频率。相反,您必须找到一些dt或deltaT(不知道它在unity中如何调用以及如何获取它,但我的意思是时间,因为unities最后一次调用更新,请在cmets中告诉我,所以我可以编辑这个答案)。

    那么不要像这样计算你的分数:

    Score--;
    

    但使用类似的东西:

    Score -= 1 * dt
    

    或

    Score -= 1 * dt * Time.timeScale
    

    (取决于统一的工作原理)


    或者,您可以使用一些 if 语句围绕您的更新块:

    得分:

    function Update (
    ) {
       if (! isPaused()) { // not sure how this function / property is called in unity
          Score--;
          guiText.text = "Score: "+Score;
      }
    }
    

    【讨论】:

    • 我使用了 Score -= 1 *Time.deltaTime 并且它有效。非常感谢您解释为什么它不起作用并给我一个解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多