示例#1
0
        /// <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));
            };
        }