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