115 lines
2.5 KiB
Lua
115 lines
2.5 KiB
Lua
------------------------------------------------
|
||
--作者:xihan
|
||
--日期:2019-04-03
|
||
--文件:KeyCodeSystem.lua
|
||
--模块:KeyCodeSystem
|
||
--描述:键盘快捷键监听系统
|
||
------------------------------------------------
|
||
local M = {}
|
||
local CSInput = CS.UnityEngine.Input
|
||
local GetKeyDown = CS.UnityEngine.Input.GetKeyDown
|
||
local GetTouch = CS.UnityEngine.Input.GetTouch
|
||
local GetMouseButtonDown = CS.UnityEngine.Input.GetMouseButtonDown
|
||
local KeyCode = CS.UnityEngine.KeyCode
|
||
|
||
M.IsDown = false
|
||
M.IsOpenEnter = true
|
||
M.CfgPassword = {5,2,1}
|
||
M.CurPassword = {}
|
||
M.CfgTotalTime = 10
|
||
M.CurTotalTime = 0
|
||
M.CfgSingleTime = 0.33
|
||
M.CurSingleTime = 0
|
||
M.CurNumber = 0
|
||
|
||
function M.Update(deltaTime)
|
||
if GetKeyDown(KeyCode.Y) then
|
||
M.KeyCodeY()
|
||
elseif GetKeyDown(KeyCode.F) then
|
||
M.KeyCodeF();
|
||
elseif GetKeyDown(KeyCode.G) then
|
||
M.KeyCodeG();
|
||
elseif GetKeyDown(KeyCode.H) then
|
||
M.KeyCodeH();
|
||
end
|
||
if M.IsOpenEnter then
|
||
M.InputPassword(deltaTime)
|
||
end
|
||
end
|
||
|
||
function M.InputPassword(deltaTime)
|
||
if M.IsDown then
|
||
if CSInput.touchCount == 0 then
|
||
M.IsDown = false;
|
||
end
|
||
else
|
||
if CSInput.touchCount > 0 then
|
||
M.IsDown = true;
|
||
M.CurSingleTime = 0
|
||
M.CurNumber = M.CurNumber + 1
|
||
end
|
||
end
|
||
|
||
if M.CurNumber > 0 then
|
||
M.CurTotalTime = M.CurTotalTime + deltaTime
|
||
if M.CurTotalTime > M.CfgTotalTime then
|
||
M.ClearPassword()
|
||
else
|
||
M.CurSingleTime = M.CurSingleTime + deltaTime
|
||
if M.CurSingleTime > M.CfgSingleTime then
|
||
table.insert(M.CurPassword, M.CurNumber)
|
||
M.CurNumber = 0
|
||
end
|
||
end
|
||
end
|
||
if #M.CurPassword > 0 then
|
||
local _isInputRight = true
|
||
local _isDone = true
|
||
for i=1, #M.CfgPassword do
|
||
if M.CurPassword[i] then
|
||
if M.CurPassword[i] ~= M.CfgPassword[i] then
|
||
_isInputRight = false
|
||
end
|
||
else
|
||
_isDone = false
|
||
end
|
||
end
|
||
|
||
if _isInputRight and _isDone then
|
||
M.ClearPassword()
|
||
-- CS.Thousandto.Code.Logic.RunTimeProfiler2.instance.isRunProfiler = true;
|
||
CS.Thousandto.Code.Center.GameUICenter.UIFormManager.UIRoot.gameObject:SetActive(true);
|
||
elseif not _isInputRight then
|
||
M.ClearPassword()
|
||
end
|
||
end
|
||
end
|
||
|
||
function M.ClearPassword()
|
||
M.CurNumber = 0
|
||
M.CurTotalTime = 0
|
||
M.CurSingleTime = 0
|
||
for j=#M.CurPassword, 1, -1 do
|
||
M.CurPassword[j] = nil
|
||
end
|
||
end
|
||
|
||
function M.KeyCodeY()
|
||
-- Debug.Log("=============[KeyCode.Y]=================")
|
||
|
||
end
|
||
|
||
function M.KeyCodeF()
|
||
-- Debug.Log("=============[KeyCode.F]=================")
|
||
|
||
end
|
||
|
||
function M.KeyCodeG()
|
||
-- Debug.Log("=============[KeyCode.G]=================")
|
||
end
|
||
|
||
function M.KeyCodeH()
|
||
Debug.Log("=============[KeyCode.H]=================")
|
||
end
|
||
|
||
return M |