我还是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;
但是我的补偿不再起作用了,我再也看不到球了。并且相机旋转不能正常工作。 有没有更好的解决方案或我使用错误的功能?
非常感谢任何帮助!