測試時需要一些開啓一些作弊的方法來提高測試的效率,比如鍵盤依次按下一串字符去實現某個功能,依次按下addcoin去增加金幣等等
using UnityEngine;
using System;
public class DebugAndTest : MonoBehaviour
{
public string str;//連續按下的按鍵
private int strIndex;//下標
private void Update()
{
KeyCode keyCode = GetKeyCode();
//防止一直檢測
if (keyCode == KeyCode.None)
{
return;
}
if (JudgeIsEqual(keyCode))
{
strIndex++;
}
else
{
strIndex = 0;
}
if (strIndex >= str.Length)
{
strIndex = 0;
//依次按下按鍵後執行的操作
Method();
}
}
/// <summary>
/// 得到當前按下的按鍵
/// </summary>
/// <returns></returns>
private KeyCode GetKeyCode()
{
if (Input.anyKeyDown)
{
foreach (KeyCode k in Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKeyDown(k))
{
return k;
}
}
}
return KeyCode.None;
}
/// <summary>
/// 判定按下的按鍵是否相同
/// </summary>
/// <param name="keyCode">按下的按鍵</param>
/// <returns></returns>
private bool JudgeIsEqual(KeyCode keyCode)
{
//得到按鍵的常規值
string key = keyCode.ToString();
if (keyCode.ToString().Contains("Alpha"))
{
key = keyCode.ToString().Split('a')[1];
}
//得到進行判定的值
string upperChar = Char.ToUpper(str[strIndex]).ToString();
string lowerChar = Char.ToLower(str[strIndex]).ToString();
bool isEqual = key.Equals(upperChar) || key.Equals(upperChar);
return isEqual;
}
/// <summary>
/// 依次按下按鍵後執行的操作
/// </summary>
private void Method()
{
Debug.Log("開啓作弊操作");
}
}