【发布时间】: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);
}
我错过了什么还是有更好的方法来实现这一点?
【问题讨论】: