【问题标题】:How to make player follow touch x position smoothly?如何让玩家顺利跟随 touch x 位置?
【发布时间】:2020-09-14 23:01:51
【问题描述】:

抱歉这个菜鸟问题,我还是个新人。

目前,我正在统一创建一个 2d 游戏,其中我有一个游戏对象,它应该在 x 轴上沿着 x 触摸位置平滑移动,以创建一个不错的滑动机制(考虑到物体不断受到 Rigidbody2d 重力的影响。

我已经尝试过使用 Vector3.MoveTowards()、Rigidbody2D.MovePosition() 并更改 Rigidbody2D 的速度,但这些都没有创建平滑的运动。

Vector3.MoveTowards():

transform.position = Vector3.MoveTowards(transform.position, new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, transform.position.y, transform.position.z), speed * Time.deltaTime);

Rigidbody2D.MovePosition():

rigidbody2D.MovePosition(new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, 
transform.position.y, transform.position.z));

Rigidbody2D.速度

Vector3 mousePositionWorld = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (mousePositionWorld.x < transform.position.x)
{
   rigidbody2D.velocity = new Vector2(-speed - -(speed * takeOff), 
   rigidbody2D.velocity.y)
}

else if (mousePositionWorld.x > transform.position.y)
{
   rigidbody2D.velocity = new Vector2(+speed - (speed * takeOff), 
   rigidbody2D.velocity.y);
}

我错过了什么还是有更好的方法来实现这一点?

【问题讨论】:

    标签: c# unity3d mobile


    【解决方案1】:

    我不知道你所说的平滑是什么意思,但我认为你可以使用 Lerp 函数。这是一个例子: https://www.youtube.com/watch?v=d6BPukJ5QkA 是一个短视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多