尝试让游戏光标顺利移动

问题描述 投票:0回答:1

我正在尝试使用输入操作在游戏中移动光标对象。由于某种原因,如果我使用

Time.DeltaTime
平滑地移动它,它会在停止移动之前结束。但是当我删除它时,它工作得很好,但是是即时的,这不是我想要的。

public float Speed = 7.0f;

    public void OnMoveUp(InputAction.CallbackContext context)
      {
         if (context.started == true)
        {
            transform.position = Vector3((transform.position.x + 2, 0,0) * speed * Time.deltaTime);

            if (transform.position.x >32)
             {
               transform.position = Vector3(32,0,0);
             }
        }
      
    }

我还尝试获取光标下方地形的 y 值,然后向其添加 5。我还没有开始,但我假设我使用

terrain.transform.position
或地形图层蒙版并将我的
transform.position.y
设置为那样。如果我错了请告诉我

c# unity-game-engine unityscript
1个回答
0
投票

在这一行

transform.position = Vector3((transform.position.x + 2, 0,0) * speed * Time.deltaTime);

您将 X 上的位置设置为

(x + 2) * speed * Time.deltaTime

所以假设每秒 60 帧

(x + 2) * speed / 60

这不是一个运动,而是停留在该位置附近,因为

/ 60
几乎抵消了
+ 2

您更想要的是 ADD 一个向量到您的位置并乘以整个

+
部分而不是结果位置。

transform.position += Vector3.right * 2 * speed * Time.deltaTime;
© www.soinside.com 2019 - 2024. All rights reserved.