在 Unity2d 中将 rigidbody.velocity 设置为鼠标方向

Set rigidbody.velocity to direction of mouse in Unity2d

我想知道如何在 unity 2d 中将 rigidbody.velocity 设置为鼠标指针的方向。我需要物体的初始速度在那个方向。之后,它将受到重力的影响。 这是我尝试过的:

float maxVel = 10f
float posTotal = Input.mousePosition.x + Input.mousePosition.y
float xVel = Input.mousePosition.x / posTotal
float yVel = Input.mousePosition.y / posTotal
Vector3 velTotal = new Vector3(xVel * maxVel, yVel * maxVel, 0)

我已经多次尝试过,但对象似乎是随机发射的。

首先,您将两个鼠标轴相加,但不会创建 Vector2。用

测试
Debug.Log(Input.mousePostion.x);
Debug.Log(Input.mousePostion.y);
Debug.Log(posTotal);

总和没什么意义。

改为使用Camera.ScreenToWorldPoint https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

并像这样从 WorldPoint 中减去 player.position https://docs.unity3d.com/Manual/DirectionDistanceFromOneObjectToAnother.html

寻找方向。您可以使用该操作中的 Vector3 在该方向应用速度。

祝你好运