Как улучшить движение объекта в игре - PullRequest
0 голосов
/ 26 июня 2018

Я новичок в единстве, но для 1-го проекта я хочу сделать что-то вроде игры в мяч, но у меня небольшая проблема с движением объекта. Я хочу сделать движение вот так

Но теперь у меня есть только вертикальное движение. Таким образом, вопрос в том, как просто изменить его на движение, как этот мяч в видео?

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

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Та же идея, что и у @AdamRoszyk, но в классе RigidBody для этого есть метод с единичным пре-блютом, который называется AddForceAtPosition :

void OnMouseDown() 
{
   var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition) ;
   rb.AddForceAtPosition(Vector2.up * jumpForce, pos, ForceMode.Impulse);
}
0 голосов
/ 26 июня 2018

Вам необходимо измерить расстояние между центром шара и точкой щелчка. Затем вы можете добавить силу в том же направлении, которое вы измерили. Не забудьте зафиксировать движения твердого тела по оси z и ограничить шар границами экрана (это также могут быть твердые тела - только с силой тяжести = 0).

rb.AddForce(transform.up * direction);

Ссылка на документацию: https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html

...