protected override unsafe long ExecuteCommand(InputDeviceCommand *commandPtr) { var t = commandPtr->type; if (t == QueryEnabledStateCommand.Type) { #if UNITY_EDITOR ((QueryEnabledStateCommand *)commandPtr)->isEnabled = m_Enabled; #else ((QueryEnabledStateCommand *)commandPtr)->isEnabled = _iOSStepCounterIsEnabled(deviceId) != 0; #endif return(kCommandSuccess); } if (t == EnableDeviceCommand.Type) { if (InputSystem.settings.iOS.motionUsage.enabled == false) { Debug.LogError("Please enable Motion Usage in Input Settings before using Step Counter."); return(kCommandFailure); } #if UNITY_EDITOR m_Enabled = true; return(kCommandSuccess); #else var callbacks = new iOSStepCounterCallbacks(); callbacks.onData = OnDataReceived; return(_iOSStepCounterEnable(deviceId, ref callbacks, Marshal.SizeOf(callbacks))); #endif } if (t == DisableDeviceCommand.Type) { #if UNITY_EDITOR m_Enabled = false; return(kCommandSuccess); #else return(_iOSStepCounterDisable(deviceId)); #endif } if (t == QueryCanRunInBackground.Type) { ((QueryCanRunInBackground *)commandPtr)->canRunInBackground = true; return(kCommandSuccess); } if (t == RequestResetCommand.Type) { #if UNITY_EDITOR m_Enabled = false; #else _iOSStepCounterDisable(deviceId); #endif return(kCommandSuccess); } return(kCommandFailure); }
private static extern int _iOSStepCounterEnable(int deviceId, ref iOSStepCounterCallbacks callbacks, int sizeOfCallbacks);