我很团结,但是对于第一个项目,我想做类似使者球类游戏的事情,但是对象移动没有什么问题。我想移动like this
但是现在我只有垂直运动了。那么问题是如何以简单的方式将其更改为视频中的球状运动?
void OnMouseDown()
{
rb.velocity = Vector2.up * jumpForce;
}
答案 0 :(得分:3)
您需要测量球的中心与点击点之间的距离。然后,您可以沿测量的相同方向施加力。 请记住,将刚体的运动锁定在z轴上,并用屏幕边界约束球(那些球也可以是刚体-仅在重力= 0时。)
rb.AddForce(transform.up * direction);
文档链接:https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html
答案 1 :(得分:1)
与@AdamRoszyk的想法相同,但在RigidBody
类中名为AddForceAtPosition的类中有一个针对这种情况的预混合方法:
void OnMouseDown()
{
var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition) ;
rb.AddForceAtPosition(Vector2.up * jumpForce, pos, ForceMode.Impulse);
}