Unity3D 触屏操作输入以及控制台

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
©️2020 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值