如何使游戏中的物体更好地移动

How to make better movement for object in game

我对 unity 很陌生,但对于第一个项目,我想制作类似信使球类游戏的东西,但我在对象移动方面遇到了小问题。我要运动like this

但现在我只有垂直运动。那么问题来了,如何简单的把它改成像视频里那个球一样的运动呢?

void OnMouseDown() 
{
   rb.velocity = Vector2.up * jumpForce;
}

您需要测量球中心与点击点之间的距离。然后你可以在你测量的相同方向上增加力。 记住在 z 轴上锁定刚体的运动并用屏幕边界约束球(这些也可以是刚体 - 只需重力 = 0)。

rb.AddForce(transform.up * direction);

Link 到文档:https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html

与@AdamRoszyk 相同的想法,但是在 RigidBody class 中有一个 pre-bluit 统一方法,名为 AddForceAtPosition:

void OnMouseDown() 
{
   var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition) ;
   rb.AddForceAtPosition(Vector2.up * jumpForce, pos, ForceMode.Impulse);
}