[英]Unity - handle 2 input for keybinding in my game
在我的游戏中你可以控制单位,每个单位都有法术,我们想给用户改变他不同法术的键绑定的可能性。
目标是例如有可能组合输入法术(例如:“ctrl + H”发送法术)
我在 unity Store 上发现一个名为“Rewired”的插件似乎可以做到这一点,但它的成本为 40 欧元,并且处理了太多我不想要的功能。
所以我尝试创建自己的脚本来解决我的问题,但我不知道如何创建按下的 2 个键码的组合。
这是我的脚本波纹管,你知道我如何创建它吗?
KeyCode key;
KeyCode curModifiersKey;(alt, ctrl)
KeyCode nonModifierKey;
KeyCode firstModifierKeyInfo;
KeyCode finalKey;
public void DetectedSeveralInput(KeyCode key)
{
if (key != KeyCode.AltGr)
{
if (key == KeyCode.LeftAlt || key == KeyCode.RightAlt || key == KeyCode.LeftControl || key == KeyCode.RightControl)
{
if (modifierPressedCount == 0)
{
firstModifierKeyInfo = key;
modifierPressedCount += 1;
}
curModifiersKey = key;
}
nonModifierKey = key;
//finalKey = curModifiersKey + nonModifierKey
LogVariables();
}
else
{
Debug.Log("AltGR pressed");
return;
}
}
我为检测多个按键所做的工作是这样的
void Update()
{
bool shiftPressed = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);
bool keyPressed = Input.GetKeyUp( /* other key code here */ );
if(shiftPressed && keyPressed)
{
//Do logic here
}
}
我检查使用 Input.GetKey 保持的 shift 键,但通过使另一个检查成为 Input.GetKeyUp 来确保逻辑只发生一次,因此它只会在键释放时为真。
感谢特里科的回答。
但问题是当你有 10 个单位,他们有 4 个法术时,我不能做这个系统。 我对此的参考是星际争霸 2,当您还可以添加鼠标按钮或 ctrl/shift/alt 时,您有一个完整的面板用于您自己的键绑定。
这就是为什么我想要将 2 个输入保存为一个(如果可能)并将其与我的单元 Y 的拼写 n°X 相关联的原因
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.