private void Update() { float angle = 0; if (Input.acceleration != Vector3.zero) { switch (tiltAroundAxis) { case AxisOptions.ForwardAxis: angle = Mathf.Atan2(Input.acceleration.x, -Input.acceleration.y) * Mathf.Rad2Deg + centreAngleOffset; break; case AxisOptions.SidewaysAxis: angle = Mathf.Atan2(Input.acceleration.z, -Input.acceleration.y) * Mathf.Rad2Deg + centreAngleOffset; break; } } float axisValue = Mathf.InverseLerp(-fullTiltAngle, fullTiltAngle, angle) * 2 - 1; switch (mapping.type) { case AxisMapping.MappingType.NamedAxis: m_SteerAxis.Update(axisValue); break; case AxisMapping.MappingType.MousepositionX: CrossPlatformInputManager.SetVirtualMousepositionX(axisValue * Screen.width); break; case AxisMapping.MappingType.MousepositionY: CrossPlatformInputManager.SetVirtualMousepositionY(axisValue * Screen.width); break; case AxisMapping.MappingType.MousepositionZ: CrossPlatformInputManager.SetVirtualMousepositionZ(axisValue * Screen.width); break; } }