Unity - 如何使对象的加速度计更顺畅地移动?

时间:2017-04-02 15:40:43

标签: c# unity5 accelerometer unity2d

当我倾斜手机时,我希望让角色顺利移动。如何让它平稳移动,速度和速度随着手机的斜率而增加?

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);
}

1 个答案:

答案 0 :(得分:0)

查看有关使用移动平均值/低通滤波器here

的答案

使用Vector3.Lerp函数可以达到类似的效果。