我刚开始团结,但对于第一个项目,我想制作类似信使球游戏的东西,但我在物体移动方面遇到了小问题。我想做这样的运动
但现在我只有垂直运动。所以问题是如何以简单的方式将其更改为视频中那个球的运动?
void OnMouseDown()
{
rb.velocity = Vector2.up * jumpForce;
}
我刚开始团结,但对于第一个项目,我想制作类似信使球游戏的东西,但我在物体移动方面遇到了小问题。我想做这样的运动
但现在我只有垂直运动。所以问题是如何以简单的方式将其更改为视频中那个球的运动?
void OnMouseDown()
{
rb.velocity = Vector2.up * jumpForce;
}
您需要测量球心和点击点之间的距离。然后您可以在您测量的相同方向上添加力。请记住锁定刚体在 z 轴上的运动,并用屏幕边界约束球(这些也可以是刚体 - 只是重力 = 0)。
rb.AddForce(transform.up * direction);
文档链接:https ://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html
与@AdamRoszyk 相同的想法,但在类中有一个预蓝色统一方法RigidBody,名为AddForceAtPosition:
void OnMouseDown()
{
var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition) ;
rb.AddForceAtPosition(Vector2.up * jumpForce, pos, ForceMode.Impulse);
}