如何在输入上增加/减少速度?

时间:2019-05-03 17:38:32

标签: c# unity3d

我想通过输入增加和减少对象移动的速度。最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

由于没有代码,我将尽力解释,每当您按下一个键时,您可以增加一个变量,而当您按下另一个键时,您可以减少该变量。这应该在Update()方法中完成,并且可以执行类似的操作

void Update()
{
    if (Input.GetKeyDown("a"))
    {
        variable++;
    }
    else if (Input.GetKeyDown("b"))
    {
        variable--;
    }
}

答案 1 :(得分:0)

最好的方法实际上取决于您要在游戏中实现的功能以及希望物体运动的感觉。

这是一种完全按照您的要求做事的方法

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.GetAxisRigidBody2D.velocity