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 }