Unity3D 触屏操作输入以及控制台
范例工程: GITHUB
本篇有设计到三种不同的触屏操作输入方式,以及一个控制台,可以方便的在触屏进行输入切换以及测试.
控制台的按键对象使用到前篇的对象池进行对象管理.
效果
一个滚球项目DEMO
三种操作方式 遥感/拖拽/点击
两种遥感控制方案 固定/重新定位
通过控制台进行摇杆方式切换/触屏操作方式切换等
控制台 编辑器环境使用波浪键~,触屏环境使用四个手指同屏,以开启/关闭
所有操作都已制作编辑器Debug输入兼容.
同时控制台也有快捷键盘按键作为快捷测试入口.
*本项目以打包成APK包含在示范工程里TouchInputTest.apk
思路
操作输入
对设置的TouchCheckBase子类进行生命周期管理(Enable/Disable/Tick)
对于不同的输入替换只需要Set替换不同的输入类即可
通过检测Input.Touches的Touch输入状态即可转换为各类操作输出
触摸生命周期(touch.phase):
Began -Moved/Stational-Ended/Canceled
*点击操作输入
检测生命周期的首末两端
*拖拽操作输入
生命周期首端进行ID表示
中端进行屏幕位置输出touch.position
末端清空唯一ID表示
*遥感操作输入
由于区分左右遥感 使用TouchTracker类对触屏的左右输入状态信息进行追踪
左下的触屏输入通过遥感转换为指定的遥感动画以及数据输出
右侧的触屏输入数据则使用touch.deltaPosition进行数据输出
摇杆控制方案管理
对设置的JoyStickBase进行生命周期管理(Activate/Move/Deactivate)
并且在Move状态传回对应的转化为对应的输入值
控制台
*开启关闭:
每帧检测指定条件(四指同屏/波浪键) 以切换开启关闭状态,拥有0.5秒检测冷却
*控制台按键
有三种控制台按键 枚举选择 文本输入 普通按钮
使用对象池对ConsoleCommand进行管理 在游戏管理类里进行控制台按钮注册
*帧率显示:
1/Time.deltaTime(?)
*日志显示
使用Application.logMessageReceived 进行日志注册
更新相关
*对于操作模式/遥感操作模式的更新添加可以继承相关的基类实现.
*有机会的话会把Log信息显示这块做成控件显示并用XML储存指定log的堆栈信息(不过也可以用Development Build进行替代).
感谢阅读文章 如遇问题请联系博主
--StriteR. 2020.6.3
推荐阅读