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 }