Как увеличить / уменьшить скорость на входе? - PullRequest
0 голосов
/ 03 мая 2019

Я хочу увеличить и уменьшить скорость движения объекта с помощью ввода.Какой лучший способ пойти по этому поводу?

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Поскольку кода нет, я постараюсь объяснить, когда вы нажимаете клавишу, вы можете увеличивать переменную, а когда вы нажимаете другую клавишу, вы можете уменьшать переменную. Это должно быть сделано в методе Update (), и это может выглядеть примерно так:

void Update()
{
    if (Input.GetKeyDown("a"))
    {
        variable++;
    }
    else if (Input.GetKeyDown("b"))
    {
        variable--;
    }
}
0 голосов
/ 03 мая 2019

Лучший путь зависит от функций, которые вы хотите реализовать в своей игре, и от того, как вы хотите, чтобы движение объекта ощущалось.

Это один из способов сделать именно то, что вы просили, хотя

using UnityEngine;

[RequireComponent(typeof(Rigidbody2D))]
public class PlayerMovement : MonoBehaviour {

    private Rigidbody2D rigidbody2D;
    private Vector2 velocity;
    public float playerMoveSpeed = 6; //the value that you want

    private float HorizontalMov;
    private float VerticalMov;

    void Awake() {
        rigidbody2D = this.GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        HorizontalMov = Input.GetAxis("Horizontal") * playerMoveSpeed * Time.deltaTime;
        VerticalMov = Input.GetAxis("Vertical") * playerMoveSpeed * Time.deltaTime;
        AddVelocity(new Vector2(HorizontalMov, VerticalMov));
        rigidbody2D.velocity = velocity;
    }

    public void AddVelocity(Vector2 newVelocity) {
        velocity += newVelocity;
    }

}

Подробнее о Input.GetAxis и RigidBody2D.velocity вы можете узнать в документации Unity

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