Files
Main/Assets/GameAssets/Resources/Lua/Common/CustomLib/KeyCodeSystem.lua

115 lines
2.5 KiB
Lua
Raw Normal View History

2025-01-25 04:38:09 +08:00
------------------------------------------------
--作者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