Управление шаром через клавиатуру
Сначала надо добавить поверхность и шар (GameObject → 3D Object → Plane и Sphere).
Для шара надо добавить скрипт. Для этого надо выбрать объект, нажать на кнопку Add Component и выбрать New script.
И добавить код ниже, который будет применяться к текущему объекту (шару).
1-ый способ
public class SphereMoveScript : MonoBehaviour { private Rigidbody rb; public int speed = 2; // скорость передвижения void Start() { // Получить доступ к компоненту Rigidbody rb = GetComponent<Rigidbody>(); } void FixedUpdate() { // Нажатие стрелочки влево или вправо float rotationX = Input.GetAxis("Horizontal") * speed; // Нажатие стрелочки вперёд или назад float rotationY = Input.GetAxis("Vertical") * speed; // Перемещение шара rb.AddRelativeTorque(Vector3.back * rotationX); rb.AddRelativeTorque(Vector3.left * rotationY); } }
2-ой способ
public class SphereMoveScript : MonoBehaviour { private Rigidbody rb; public int speed = 2; // скорость передвижения void Start() { // Получить доступ к компоненту Rigidbody rb = GetComponent<Rigidbody>(); } void FixedUpdate() { // Нажатие стрелочки влево или вправо float moveHorizontal = Input.GetAxis("Horizontal"); // Нажатие стрелочки вперёд или назад float moveVertical = Input.GetAxis("Vertical"); // Перемещение шара Vector3 movement = new Vector3(moveHorizontal, 0, moveVertical); rb.AddForce(movement * speed); } }
Теперь при нажатии на клавиши стрелочек, шар будет катиться по поверхности.
В переменных moveHorizontal
и moveVertical
хранятся значения -1 или 1 (в зависимости от нажатой клавиши).
При этом, когда идёт нажатие, например, клавиши «вправо», то значение moveHorizontal
постепенно увеличивается с -1 до 1 (например, -1, -0.9, -0.8 и так до 1), этим самым создавая эффект ускорения или торможения.
Также через данный способ можно сделать платформер с видом сбоку.