【问题标题】:Unity: Quad does not restart postionUnity:Quad不重新启动位置
【发布时间】:2018-03-14 00:23:53
【问题描述】:

我有一个问题,我不知道如何解决。我有一个带有很长图像的 Quad 和一个脚本,可以将整个内容变成滚动背景。问题是当我的玩家死亡并且我重新开始游戏时,四边形不是从图像的开头开始,而是从死亡点继续。几次死亡后,我的玩家在空白背景中生成,因为 Quad 图像早已完成。我尝试在玩家死亡时摧毁它,它确实被摧毁了,但在重新启动后,它仍然记得 Quad 到达的最后位置。有什么想法可以解决这个问题吗?

滚动代码:

    void Update () {
        {
            if (!timerReached)
            {
                timer += Time.deltaTime;

                Vector2 offset = new Vector2(0, Time.time * speed);
                GetComponent<Renderer>().material.mainTextureOffset = offset;
            }


            if (!timerReached && timer > TIMER_TIME)
            {

                timerReached = true;
            }
        }
    }

【问题讨论】:

  • 您没有代码告诉您的图像应该重置。
  • @Draco18s 我猜到了,但我不知道怎么写。我尝试了一些事情,但我可能会做一些意想不到的愚蠢的事情。
  • @TheNewbie 向我们展示您的尝试。

标签: c# unity3d unity3d-2dtools


【解决方案1】:

您正在使用Time.time 偏移您的纹理。这是游戏开始后的秒数,永远不会重置为零,但会一直增加。

相反,使用 timer 偏移您的纹理,您已经与 deltaTime 求和,当您死亡时,将 timer 重置为零(我怀疑您已经这样做了)。

timer += Time.deltaTime;

Vector2 offset = new Vector2(0, timer * speed);
GetComponent<Renderer>().material.mainTextureOffset = offset;

【讨论】:

  • 我不确定我是否在任何地方重置它。这就是我上面写的所有代码。我尝试以某种方式将计时器强制为 0,但没有任何效果,Quad 仍然保持上次停止时的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 2013-04-09
  • 1970-01-01
相关资源
最近更新 更多