/// <summary> /// Scans for keyboard input and calls the handler with the result. /// Returns KeyCode.None if timeout is reached or the scan is canceled. /// </summary> public static void StartKeyScan(KeyScanHandler scanHandler, float timeout, string cancelScanButton, params object[] userData) { if (_instance._scanFlags != ScanFlags.None) { _instance.StopInputScan(); } _instance._scanTimeout = timeout; _instance._scanFlags = ScanFlags.Key | ScanFlags.JoystickButton; _instance._scanStartTime = _instance.ignoreTimescale ? Time.realtimeSinceStartup : Time.time; _instance._cancelScanButton = cancelScanButton; _instance._scanUserData = userData; _instance._scanHandler = (result) => { return(scanHandler(result.key, (object[])result.userData)); }; }