As far as I could find, and what a comparison test seems to confirm, “Input.gyro.attitude” simply passes the raw Android TYPE_ROTATION_VECTOR SensorEvent value when using Android.
This SensorEvent value, which is classified as using a ‘virtual sensor’, is supposed to use a combination of the accelerator, gyrometer and magnetometer, depending on what is available on the device.
Does Unity’s Input.gyro.attitude also use the magnetometer if Input.compass does not get enabled in the code?
Because the gyroscope and the compass obviously need to be enabled seperately, but the ‘fused’ data gets returned through the gyroscope object only.
Does Unity automatically enable the compass when retrieving the attitude data?
I just realized that in raw Android code the sensors don’t have to be enabled in the same way as Unity handles enabling.
So if TYPE_ROTATION_VECTOR is actually used, as I suspect, then there is probably no way to disable the magnetometer, which would mean the magnetometer is always used in Input.gyro.attitude?