我是AR人
侠客
侠客
  • UID4982
  • 粉丝2
  • 关注0
  • 发帖数20
阅读:541回复:0

Unity3d入门教程系列:鼠标和键盘输入与控制

楼主#
更多 发布于:2018-01-02 22:53
本文讲述了怎样进行鼠标和键盘的输入信息检测。外部设备输入检测需要每一帧运行,所以检测的函数需要写在Update函数中。本文讲的内容比较简单,直接上代码吧。
  1. using UnityEngine;  
  2. using System.Collections;  
  3.  
  4. public class InputMethod : MonoBehaviour {  
  5.  
  6.    int mPressMouseLeft = 0;  
  7.    int mPressMouseRight = 0;  
  8.    int mPressMouseMiddle = 0;  
  9.  
  10.    void Start () {  
  11.      
  12.    }  
  13.  
  14.    void Update () {  
  15.  
  16.        //鼠标按下事件  
  17.        if (Input.GetMouseButtonDown(0))  
  18.        {  
  19.            Debug.Log("按下了鼠标左键");  
  20.        }  
  21.        if (Input.GetMouseButtonDown(1))  
  22.        {  
  23.            Debug.Log("按下了鼠标右键");  
  24.        }  
  25.        if (Input.GetMouseButtonDown(2))  
  26.        {  
  27.            Debug.Log("按下了鼠标中键");  
  28.        }  
  29.        //鼠标抬起事件  
  30.        if (Input.GetMouseButtonUp(0))  
  31.        {  
  32.            Debug.Log("抬起了鼠标左键");  
  33.        }  
  34.        if (Input.GetMouseButtonUp(1))  
  35.        {  
  36.            Debug.Log("抬起了鼠标右键");  
  37.        }  
  38.        if (Input.GetMouseButtonUp(2))  
  39.        {  
  40.            Debug.Log("抬起了鼠标中键");  
  41.        }  
  42.        //鼠标长按事件  
  43.        if (Input.GetMouseButton(0))  
  44.        {  
  45.            mPressMouseLeft++;            
  46.        }  
  47.        else  
  48.        {  
  49.            if (mPressMouseLeft > 0)  
  50.            {  
  51.                Debug.Log("鼠标左键按下的帧数为: " + mPressMouseLeft.ToString());  
  52.            }  
  53.            mPressMouseLeft = 0;  
  54.        }  
  55.  
  56.        if (Input.GetMouseButton(1))  
  57.        {  
  58.            mPressMouseRight++;            
  59.        }  
  60.        else  
  61.        {  
  62.            if (mPressMouseRight > 0)  
  63.            {  
  64.                Debug.Log("鼠标右键按下的帧数为: " + mPressMouseRight.ToString());  
  65.            }  
  66.            mPressMouseRight = 0;  
  67.        }  
  68.  
  69.        if (Input.GetMouseButton(2))  
  70.        {  
  71.            mPressMouseMiddle++;  
  72.        }  
  73.        else  
  74.        {  
  75.            if (mPressMouseMiddle > 0)  
  76.            {  
  77.                Debug.Log("鼠标中键按下的帧数为: " + mPressMouseMiddle.ToString());  
  78.            }  
  79.            mPressMouseMiddle = 0;  
  80.        }  
  81.  
  82.        //键盘按下事件  
  83.        if (Input.GetKeyDown(KeyCode.Space))  
  84.        {  
  85.            Debug.Log("按下了空格");  
  86.        }  
  87.        //键盘抬起事件  
  88.        if (Input.GetKeyUp(KeyCode.Space))  
  89.        {  
  90.            Debug.Log("抬起了空格");  
  91.        }  
  92.        //键盘长按事件  
  93.        if (Input.GetKey(KeyCode.Space))  
  94.        {  
  95.            Debug.Log("空格正在被按下状态");  
  96.        }  
  97.    }  
  98. }  
运行后,点击鼠标和空格键,会看到如下结果。

欢迎分享

游客

返回顶部