射击游戏开发教程——玩家控制(未完)
一、游戏玩家控制
1.获取玩家键盘输入
Input.GetKey(KeyCode.A)
Input.GetKeyDown(KeyCode.A)
Input.GetKeyUp(KeyCode.A)
2.获得鼠标信息
Input.mousePosition 返回鼠标当前的位置
Input.mousePresent 判断当前是否连接鼠标
Input.mouseScrollDelta 获取鼠标滚轮的移动量
Input.GetMouseButton(int btType) 点击或按着鼠标返回true;btType:0-左键、1-右键、2-中键
Input.GetMouseButtonDown(int btType) 点击鼠标返回true
Input.GetMouseButtonUp(int byType) 松开鼠标返回true
3.轴输入
Input.GetAxis(string axisName) //获取指定轴的值 会进行插值范围在-1~1变动
Input.GetAxisRaw(string axisName) //获取指定轴的值 但是是瞬间变动的 值在-1 0 1中取值
例如:
float x = Input.GetAxis(“Horizontal”); //获取X轴
float y = Input.GetAxis(“Vertical”); //获取Y轴 vertical在3D中应该对应物体的z轴
参数(”Mouse X”)返回鼠标左右移动的距离,值区间[-1,1]。参数(”Mouse Y”)返回鼠标上下移动的距离,值区间[-1,1]。
4.关于axisName
如果设置输入或查看axisName的选项 可以在Edit->ProjectSetting->InputManager 可以调出InputManager,然后展开Axes可以查看当前输入的列表,可以选择其中一个转为axisName。要重命名输入或更改 Positive Button 等,可以展开其中一个选项,然后在 Name 字段或 Positive Button 字段中更改名称。此外,请将 Type 更改为 Joystick Axis。要添加新的输入,请将 Size 字段中的数字加 1。
5.Input.GetTouch()方法,主要用于移动端开发使用,此方法主要获取触摸屏幕的操作数据,首先通过Input.touchCount这个方法获取到手指触摸屏幕的次数,通过GetTouch方法传输触摸次数,调用Touch结构判断手指的状态来是否为设定的状态,符合的话则执行相关内容。
6.CharacterController组件
CharacterController是一个基础的角色控制组件,通过它我们可以实现包括移动、奔跑、跳跃、爬楼梯和爬斜坡等基本的角色操作。它主要用于不基于刚体物理的第一人称或第三人称的角色控制。
CharacterController.Move()函数用于指定角色在三维空间中的移动方向和距离,是基于世界坐标系的,并且没有重力支持。他的参数是一个Vector3类型的。
在Unity中,Vector3是一个结构体,通常用于在Unity脚本中存储和操作三维空间中的点或方向。例如:
vector3 position = new Vector3(1.0f, 2.0f, 3.0f);
