1)按键
2)轴向
通过步骤一,我们得知了手柄的按键及轴向的设置及调用,接下来我们需要整合一个管理类。
1)通过十字键(上下左右移动)控制聚焦UI物体的选中态切换
float x = Input.GetAxis(“对应十字键6th axis的名字”);
float y = Input.GetAxis(“对应十字键5th axis的名字”);
通过x和y值绑定四个方向的函数SetAxisDir(AxisDir dir);方向函数存储在list容器中,使用计时器在Update中执行对应方向的委托事件(可以自定义执行间隔时间)。
ps:当本场景被注销时,需要调用CancelAllDirEvents,不然会有上个场景的事件执行时找不到对象的错误(管理类常驻,DontDestroyOnLoad)。
2)通过主摇杆控制人物(摄像机)移动
如果仅通过单个轴向去做处理的话,不能适配摇杆360°可旋转的特性。这里介绍一个原生API解决这个问题:Vector2.ClampMagnitude(new Vector2(x, y), 1f);
ps:Vector3也有这个方法。
3)通过副摇杆控制人物(摄像机)旋转
因为业务的需求,不可让人物360°旋转,即需要一定的角度限制。这里介绍一个原生API解决这个问题:float angle = Mathf.Clamp(angle, minAngle, maxAngle);
pps:所有轴向的调用获取是通过Input.GetAxis(“对应轴向名称”);具体轴向对应方向获取的值的正负请自行验证 =_=