迷宫游戏中的相机旋转取决于加速度计

时间:2015-08-27 16:26:52

标签: c# unity3d camera rotation accelerometer

我还是Unity的新手...我正在尝试开发简单的迷宫游戏。我想在迷宫中滚动球,但我必须向左或向右旋转相机,否则玩家在左侧或右侧滚球时无法看到后面的内容。

void Start () 
{
    offset = transform.position - player.transform.position;
}

void LateUpdate() 
{
    transform.position = player.transform.position + offset;
}

我使用低通滤波器来获取加速度计值:

Vector3 lowpass()
{
    float LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds; 
    lowPassValue = Vector3.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);
    return lowPassValue;
}

每个坐标的加速度计值从-1到1。因此,我检查我的lowPassValue.x值并限制它。如果它是正的(> 0.3),那么相机应该向右转,如果它是负的(< -0.3),那么相机应该向左转。

Quaternion rotation = Quaternion.AngleAxis(45, Vector3.up* Time.deltaTime) ; // right
transform.rotation = rotation;

Quaternion rotation = Quaternion.AngleAxis(-45, Vector3.up * Time.deltaTime) ; // left
transform.rotation = rotation;

但是我的补偿不再起作用了,我再也看不到球了。并且相机旋转不能正常工作。 有没有更好的解决方案或我使用错误的功能?

非常感谢任何帮助!

0 个答案:

没有答案