欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-15 14:06:11
...

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


范例工程: GITHUB

本篇有设计到三种不同的触屏操作输入方式,以及一个控制台,可以方便的在触屏进行输入切换以及测试.

控制台的按键对象使用到前篇的对象池进行对象管理.

效果

一个滚球项目DEMO
三种操作方式 遥感/拖拽/点击
两种遥感控制方案 固定/重新定位
通过控制台进行摇杆方式切换/触屏操作方式切换等

控制台 编辑器环境使用波浪键~,触屏环境使用四个手指同屏,以开启/关闭
所有操作都已制作编辑器Debug输入兼容.
同时控制台也有快捷键盘按键作为快捷测试入口.

*本项目以打包成APK包含在示范工程里TouchInputTest.apk
Unity3D 触屏操作输入以及控制台

思路

操作输入

对设置的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
相关标签: Framework?