转自:https://www.cnblogs.com/jephone/p/4409395.html
创建下面这个脚本:
using UnityEngine;
using System.Collections;
public class CombinationKey
{
public CombinationKey (KeyCode p,KeyCode a)
{
PrimaryKey = p;
AttachKey = a;
}
public CombinationKey() { }
/// <summary>
/// 主键
/// </summary>
public KeyCode PrimaryKey
{
set { primaryKey = value; }
}
private KeyCode primaryKey = KeyCode.LeftControl;
bool bPrimary = false;
/// <summary>
/// 附键
/// </summary>
public KeyCode AttachKey
{
set { attachKey = value; }
}
private KeyCode attachKey = KeyCode.E;
/// <summary>
/// 按下组合键后,只返回一次真
/// </summary>
/// <returns></returns>
public bool ClickKey()
{
if (Input.GetKeyDown(primaryKey))
{
bPrimary = true;
}
if (Input.GetKeyUp(primaryKey))
{
bPrimary = false;
}
if (bPrimary)
{
if (Input.GetKeyDown(attachKey))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
/// <summary>
/// 按下组合键后,一直返回真,直到松开
/// </summary>
/// <returns></returns>
public bool PressKey()
{
if (Input.GetKeyDown(primaryKey))
{
bPrimary = true;
}
if (Input.GetKeyUp(primaryKey))
{
bPrimary = false;
}
if (bPrimary)
{
if (Input.GetKey(attachKey))
{
Debug.Log("d");
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
//void Update()
//{
// ClickKey();
// PressKey();
//}
}
使用上面的脚本:
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour
{
CombinationKey mKey = new CombinationKey(KeyCode.LeftControl, KeyCode.E);
void Update()
{
if(mKey.ClickKey()) {Debug.Log("Click");}
}
}