Установите жесткое тело.скорость в направлении мыши в Unity2d - PullRequest
0 голосов
/ 03 мая 2020

Мне интересно, как установить значение solidbody.velocity в направлении указателя мыши в единице 2d. Мне нужно, чтобы начальная скорость объектов была в этом направлении. После этого это будет зависеть от силы тяжести. Вот что я пробовал:

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)

Я пробовал это неоднократно, но объект, кажется, стреляет в случайном направлении.

1 Ответ

0 голосов
/ 04 мая 2020

Сначала вы складываете две оси мыши, и это не создает Vector2. Протестируйте это с

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

. Сумма не имеет смысла.

вместо этого используйте Camera.ScreenToWorldPoint https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

и вычтите положение игрока из этой точки мира следующим образом https://docs.unity3d.com/Manual/DirectionDistanceFromOneObjectToAnother.html

чтобы получить направление. Вы можете применить скорость в этом направлении с помощью Vector3 от этой операции.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...