Unity - Как сделать так, чтобы акселерометр объекта двигался более плавно?

Я хочу, чтобы мой персонаж плавно двигался, когда я наклоняю телефон. Как я могу заставить его двигаться плавно, а скорость и скорость увеличиваются по мере наклона телефона?

void AccelerometerMove()
{

    float x = Input.acceleration.x;
    Debug.Log("X = " + x);

    if (x < -0.1f)
    {
        MoveLeft();
    }
    else if (x > 0.1f)
    {
        MoveRight();
    }
    else
    {
        SetVelocityZero();
    }
}

public void SetVelocityZero()
{
    rb.velocity = Vector2.zero;
}

public void MoveLeft()
{
    rb.velocity = new Vector2(-speed, 0);
    //transform.Translate(Vector2.right * speed * Time.deltaTime);
    transform.eulerAngles = new Vector2(0, 180);
}

public void MoveRight()
{
    rb.velocity = new Vector2(speed, 0);
    //transform.Translate(Vector2.right * speed * Time.deltaTime);
    transform.eulerAngles = new Vector2(0, 0);
}

person Mark Martin    schedule 02.04.2017    source источник


Ответы (1)


Ознакомьтесь с этим ответом об использовании скользящего среднего/фильтра нижних частот здесь

Аналогичного эффекта можно добиться, используя функцию Vector3.Lerp.

person storm muller    schedule 27.06.2017