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)) {
}

你可能感兴趣的:(Unity3D游戏开发之“组合键判断”)