zoukankan      html  css  js  c++  java
  • 小白_Unity引擎_Input输入控制

      1 public class InputTest : MonoBehaviour {
      2 
      3 
      4     /// <summary>
      5     /// 1.获取不同的轴
      6     /// </summary>
      7     void InitData()
      8     {
      9         //1.获取键盘 水平、垂直的虚拟轴函数
     10          float kx =   Input.GetAxis("Vertical");
     11          float ky = Input.GetAxis("Horizontal");
     12 
     13 
     14         //2.获取 鼠标 水平,垂直的虚拟轴函数
     15          float mx = Input.GetAxis("Mouse X");
     16          float my = Input.GetAxis("Mouse Y");
     17 
     18         //3.获取鼠标滚轮的信息: 
     19          float sx = Input.GetAxis("Mouse ScrollWheel");
     20        
     21     }
     22 
     23 
     24     void Update () {
     25       //  ControlAxis();
     26 
     27         Test2();
     28     }
     29 
     30 
     31     private Vector3 tranV = Vector3.zero;
     32     private Vector3 scalV = Vector3.one; //缩放
     33     /// <summary>
     34     /// 2.通过获取周实现物体,移动缩放
     35     /// </summary>
     36     private void ControlAxis()
     37     {
     38 
     39         //1.获取键盘 水平、垂直的虚拟轴函数  wasd 或者前后左右箭头实现前后左右移动
     40         float kx = Input.GetAxis("Vertical");
     41         float ky = Input.GetAxis("Horizontal");
     42 
     43         this.transform.Translate(kx * Time.deltaTime * 10, 
     44                                     0,
     45                                     ky * Time.deltaTime * 10);
     46 
     47         //2.获取 鼠标 水平,垂直的虚拟轴函数
     48         float my = Input.GetAxis("Mouse X");
     49         float mx = Input.GetAxis("Mouse Y");
     50 
     51         tranV.x -= mx;
     52         tranV.y += my;
     53 
     54        // 鼠标控制旋转
     55         this.transform.eulerAngles = tranV;
     56 
     57 
     58         //3.实现滚轮缩放
     59         float sx = Input.GetAxis("Mouse ScrollWheel");
     60         scalV += Vector3.one*sx;
     61         this.transform.localScale = scalV;
     62 
     63     }
     64 
     65 
     66     /// <summary>
     67     /// 和GetKey() 和GetButton() 的不同
     68     /// </summary>
     69     void Diff()
     70     {
     71         //1. 与GetKey和GetButton不同的是,返回值类型不是是bool值,二十float类型的关于轴方向移动变化的数值(-1 --- 1之间)
     72           bool b1 =   Input.GetKey("");
     73           bool b2 =   Input.GetButton("");
     74 
     75          /// Input.GetButton("")使用
     76          /// 1. Edit -- Project Setting -- Input --- InputManager
     77          /// 2.设置Alt Positive Button 的名字
     78          /// 3.类型Type设置为 Key or Mouse Button
     79          
     80         ///数字,字母对应键盘的的输入
     81         ///鼠标 0 表示左键  1表示鼠标右键  2表示鼠标中键
     82         ///直接用GetKey 和GetMouse看起来更直观,不用设置
     83           if (Input.GetKey(KeyCode.A))
     84           {
     85             Debug.Log("按下A");
     86           }
     87           if (Input.GetMouseButton(0))
     88           {
     89               Debug.Log("按下鼠标左键");
     90           }
     91 
     92         ///GetKey() 和GetKeyDown() 区别:
     93         ///GetKey():如果按钮一直按下,会不停的调用,返回bool值
     94         ///GetKeyDown()和GetKeyUp() 一样在执行动作的时候调用一次
     95 
     96     }
     97 
     98     /// <summary>
     99     /// InputManager 的一些属性
    100     /// </summary>
    101     void Test()
    102     {
    103 
    104         ///Fire1 Fire2 Fire3 被分别映射到Ctrl Option(Alt) 和Command键
    105         ///Window Shake X 和Window Shake Y 被映射到窗口的移动
    106         
    107 
    108         ///InputManager 的一些属性:
    109         ///Sensitiyty:控制按键灵敏度,按下后背控制的对象将迅速做出反应,例如横向 AD控制,在抬起A键后,在按下D键这个过程,是迅速回到0,还是还缓慢回到0然后响应D键
    110         ///Gravity: 控制按键控制结束后的反应速度,当按键结束控制后,对象将迅速失去控制
    111         ///  这个两个:一个是按下键盘或者鼠标那一刹那的反应与否
    112         ///     另一个是松开键盘或鼠标那一刹那的迅速反应与否
    113         /// Snap: 选中由) 变为+1 ,不选由-1 逐步变为+1 (应用于比如赛车类游戏)
    114         ///  
    115 
    116     }
    117 
    118 
    119     /// <summary>
    120     /// 获取各种按键方法
    121     /// </summary>
    122     void Test2()
    123     {
    124         //1.
    125         //Input.anyKey: 任何按键(包括鼠标和键盘)事件发生(包括按下,抬起等等)
    126         //Input.anyKeyDown :任何按键(包括鼠标和键盘)事件发生(只包括按下那时刻)
    127         //if (Input.anyKey)
    128         //{
    129         //    Debug.Log("按下一个键");
    130         //}
    131 
    132 
    133         //2.
    134         //获取空格输入
    135         Input.GetKey("space"); Input.GetKey(KeyCode.Space); Input.GetButton("Jump");
    136         //获取向上按键
    137         Input.GetKey("up");
    138         //获取字母按键A
    139         Input.GetKey("a"); Input.GetKey(KeyCode.A);
    140 
    141 
    142         ///获取键盘按键与InputManager管理类没有直接关联,而获取按钮方法则与命名的名称直接对应
    143         ///建议用GetButton,因为可以在项目完成之后更灵活的修改按键的控制
    144 
    145 
    146        // Input.mousePosition; 返回当前鼠标的位置
    147        // Input.mousePresent;
    148 
    149 
    150     }
  • 相关阅读:
    appdata文件夹有什么用途?C盘appdata可以删除吗?
    白话讲MyIsam和InnoDB的区别
    MVC&&MVP
    计算机程序的思维逻辑- 函数调用的基本原理
    猫狗收养所
    博客学习分类
    Android之操作SQLite
    总结---20160508
    对栈元素排序
    集合栈
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9261857.html
Copyright © 2011-2022 走看看