Unity 模擬鍵盤按鍵

1:本人是在使用HTCVive時,使用了InputField組件,發現不知道如何模擬鍵盤中使用回車鍵就直接就代表輸入完成,回調輸入完成事件。於是找了各種InputFieldAPI,發現底層沒有對輸入完成的代碼進行封裝,爲了這麼一個小功能對底層輸入組件進行重寫有點累贅於是就想到了模擬鍵盤控制就行。使用user32.dll即可。

2:廢話不多說,看如何使用:

using UnityEngine;
using UnityEngine.UI;
using System.Runtime.InteropServices;

public class UI_Keyboard : MonoBehaviour
{
    [DllImport("user32.dll", EntryPoint = "keybd_event")]
    public static extern void Keybd_event(
          byte bvk,//虛擬鍵值 Enter鍵對應的是13
          byte bScan,//0
          int dwFlags,//0爲按下,1按住,2釋放
          int dwExtraInfo//0
          );
    public InputField input;
    public void Enter()
    {
        //  input.text = "\n";
        Keybd_event(13, 0, 0, 0);
        input.readOnly = true;
    }
}
   

以下是對應的鍵值:

(二進)Bin    (十進)Dec   (十六進)Hex         縮寫/字符                                       解釋 
0000 0000     0           00             NUL (null)                                       空字符    
0000 0001     1           01             SOH (start of handing)                   標題開始  
0000 0010     2           02             STX (start of text)                           正文開始  
0000 0011     3           03             ETX (end of text)                           正文結束 
0000 0100     4           04             EOT (end of transmission)             傳輸結束  
0000 0101     5           05             ENQ (enquiry)                               請求  
0000 0110     6           06             ACK (acknowledge)                       收到通知  
0000 0111     7           07             BEL (bell)                                       響鈴 
0000 1000     8           08             BS (backspace)                             退格  
0000 1001     9           09             HT (horizontal tab)                         水平製表符  
0000 1010     10         0A             LF (NL line feed, new line)             換行鍵  
0000 1011     11         0B             VT (vertical tab)                             垂直製表符  
0000 1100     12         0C             FF (NP form feed, new page)         換頁鍵  
0000 1101     13         0D             CR (carriage return)                       回車鍵 
0000 1110     14         0E             SO (shift out)                                 不用切換  
0000 1111     15         0F             SI (shift in)                                     啓用切換  
0001 0000     16         10             DLE (data link escape)                   數據鏈路轉義  
0001 0001     17         11             DC1 (device control 1)                   設備控制1  
0001 0010     18         12             DC2 (device control 2)                   設備控制2  
0001 0011     19         13             DC3 (device control 3)                   設備控制3  
0001 0100     20         14             DC4 (device control 4)                   設備控制4  
0001 0101     21         15             NAK (negative acknowledge)         拒絕接收  
0001 0110     22         16             SYN (synchronous idle)                 同步空閒  
0001 0111     23         17             ETB (end of trans. block)               傳輸塊結束  
0001 1000     24         18             CAN (cancel)                                 取消 
0001 1001     25         19             EM (end of medium)                       介質中斷  
0001 1010     26         1A             SUB (substitute)                             替補  
0001 1011     27         1B             ESC (escape)                                 溢出  
0001 1100     28         1C             FS (file separator)                         文件分割符  
0001 1101     29         1D             GS (group separator)                     分組符  
0001 1110     30         1E             RS (record separator)                   記錄分離符  
0001 1111     31         1F             US (unit separator)                         單元分隔符  
0010 0000     32         20             空格 
0010 0001     33         21             !
0010 0010     34         22             " 
0010 0011     35         23             # 
0010 0100     36         24             $ 
0010 0101     37         25             % 
0010 0110     38         26             &
0010 0111     39         27             ' 
0010 1000     40         28             ( 
0010 1001     41         29             ) 
0010 1010     42         2A             * 
0010 1011     43         2B             + 
0010 1100     44         2C             , 
0010 1101     45         2D             - 
0010 1110     46         2E             . 
0010 1111     47         2F             / 
0011 0000     48         30             0 
0011 0001     49         31             1 
0011 0010     50         32             2 
0011 0011     51         33             3 
0011 0100     52         34             4 
0011 0101     53         35             5 
0011 0110     54         36             6 
0011 0111     55         37             7 
0011 1000     56         38             8 
0011 1001     57         39             9 
0011 1010     58         3A             : 
0011 1011     59         3B             ; 
0011 1100     60         3C             <
0011 1101     61         3D             = 
0011 1110     62         3E             > 
0011 1111     63         3F             ? 
0100 0000     64         40             @ 

0100 0001     65         41             A 
0100 0010     66         42             B 
0100 0011     67         43             C 
0100 0100     68         44             D 
0100 0101     69         45             E 
0100 0110     70         46             F 
0100 0111     71         47             G 
0100 1000     72         48             H 
0100 1001     73         49             I 
0100 1010     74         4A             J 
0100 1011     75         4B             K 
0100 1100     76         4C             L 
0100 1101     77         4D             M 
0100 1110     78         4E             N 
0100 1111     79         4F             O 
0101 0000     80         50             P 
0101 0001     81         51             Q 
0101 0010     82         52             R 
0101 0011     83         53             S 
0101 0100     84         54             T 
0101 0101     85         55             U 
0101 0110     86         56             V 
0101 0111     87         57             W 
0101 1000     88         58             X 
0101 1001     89         59             Y 
0101 1010     90         5A             Z 
0101 1011     91         5B             [ 
0101 1100     92         5C             \ 
0101 1101     93         5D             ] 
0101 1110     94         5E             ^ 
0101 1111     95         5F             _ 
0110 0000     96         60             ` 
0110 0001     97         61             a 
0110 0010     98         62             b 
0110 0011     99         63             c 
0110 0100     100       64             d 
0110 0101     101       65             e 
0110 0110     102       66             f 
0110 0111     103       67             g 
0110 1000     104       68             h 
0110 1001     105       69             i 
0110 1010     106       6A             j 
0110 1011     107       6B             k 
0110 1100     108       6C             l 
0110 1101     109       6D             m 
0110 1110     110       6E             n 
0110 1111     111       6F             o 
0111 0000     112       70             p 
0111 0001     113       71             q 
0111 0010     114       72             r 
0111 0011     115       73             s 
0111 0100     116       74             t 
0111 0101     117       75             u 
0111 0110     118       76             v 
0111 0111     119       77             w 
0111 1000     120       78             x 
0111 1001     121       79             y 
0111 1010     122       7A             z 
0111 1011     123       7B             { 
0111 1100     124       7C             | 
0111 1101     125       7D             } 
0111 1110     126       7E             ~  
0111 1111     127       7F             DEL (delete)                                 
刪除  

鍵盤常用ASCII碼(十進制表示值)

ESC鍵           VK_ESCAPE (27)
回車鍵:        VK_RETURN (13)
TAB鍵:       VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵:         VK_SHIFT (16)
Ctrl鍵:         VK_CONTROL (17)
Alt鍵:          VK_MENU (18)
空格鍵:         VK_SPACE (/32)
退格鍵:         VK_BACK (8)
左徽標鍵: VK_LWIN (91)
右徽標鍵:    VK_LWIN (92)
鼠標右鍵快捷鍵:VK_APPS (93) 
Insert鍵:        VK_INSERT (45)
Home鍵:        VK_HOME (36)
Page Up:       VK_PRIOR (33)
PageDown: VK_NEXT (34)
End鍵:          VK_END (35)
Delete鍵:       VK_DELETE (46)
方向鍵(←):    VK_LEFT (37)
方向鍵(↑):    VK_UP (38)
方向鍵(→):    VK_RIGHT (39)
方向鍵(↓):    VK_DOWN (40)
F1鍵:             VK_F1 (112)
F2鍵:             VK_F2 (113)
F3鍵:             VK_F3 (114)
F4鍵:             VK_F4 (115)
F5鍵:             VK_F5 (116)
F6鍵:             VK_F6 (117)
F7鍵:             VK_F7 (118)
F8鍵:             VK_F8 (119)
F9鍵:             VK_F9 (120)
F10鍵:           VK_F10 (121)
F11鍵:           VK_F11 (122)
F12鍵:          VK_F12 (123)
Num Lock鍵: VK_NUMLOCK (144)
小鍵盤0:        VK_NUMPAD0 (96)
小鍵盤1:         VK_NUMPAD0 (97)
小鍵盤2:         VK_NUMPAD0 (98)
小鍵盤3:         VK_NUMPAD0 (99)
小鍵盤4:        VK_NUMPAD0 (100)
小鍵盤5:        VK_NUMPAD0 (101)
小鍵盤6:         VK_NUMPAD0 (102)
小鍵盤7:         VK_NUMPAD0 (103)
小鍵盤8:         VK_NUMPAD0 (104)
小鍵盤9:        VK_NUMPAD0 (105)
小鍵盤.:         VK_DECIMAL (110)
小鍵盤*:         VK_MULTIPLY (106)
小鍵盤+:         VK_MULTIPLY (107)
小鍵盤-:         VK_SUBTRACT (109)
小鍵盤/:         VK_DIVIDE (111)
Pause Break鍵: VK_PAUSE (19)
Scroll Lock鍵: VK_SCROLL (145)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章