Unity3D游戏开发之“组合键判断”

本文介绍了在Unity3D中如何进行组合键的判断,这对于游戏操控性和交互性至关重要,内容涉及游戏开发中的键盘事件监听和组合键处理技巧。

Unity3D游戏开发之“组合键判断”

在做编辑器功能的时候可能会用到组合键的功能,可能很多朋友不知道怎么判断或者判断的方法太复杂。
下面分享一个我自己用的一个组合键的判断函数。此函数可以判断键盘键的组合、键盘和鼠标键的组合。

代码如下:
本帖隐藏的内容
[C#] 纯文本查看 复制代码
?
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
     private bool isCombinationKey(EventModifiers prekey, KeyCode postkey, EventType postkeyevent) {
         if (prekey != EventModifiers.None) {
             bool eventDown = (Event.current.modifiers & prekey) != 0;
             if (eventDown && Event.current.rawType == postkeyevent && Event.current.keyCode == postkey) {
                 Event.current.Use();
 
if (postkey != KeyCode.None)
  Debug.Log( string .Format( "{0} + {1}" , prekey.ToString(), postkey.ToString()));
else
  Debug.Log( string .Format( "{0} + {1}" , prekey.ToString(), postkeyevent.ToString()));
 
                 return true ;
             }
         } else {
             if (Event.current.rawType == postkeyevent && Event.current.keyCode == postkey) {
                 Event.current.Use();
 
if (postkey != KeyCode.None)
  Debug.Log( string .Format( "{0}" , postkey.ToString()));
else
  Debug.Log( string .Format( "{0}" , postkeyevent.ToString()));
 
                 return true ;
             }
         }
         return false ;
     }




用法:
[C#] 纯文本查看 复制代码
?
 
1
2
3
4
5
6
7
         if (isCombinationKey(EventModifiers.Alt, KeyCode.None,EventType.mouseDown)) {
}
if (isCombinationKey(EventModifiers.Alt, KeyCode.None, EventType.mouseDrag)) {
}
if (isCombinationKey(EventModifiers.Alt, KeyCode.None, EventType.mouseUp)) {
}
if (isCombinationKey(EventModifiers.Control, KeyCode.C, EventType.keyDown)) {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值