标签:
学习笔记适合新手,如有错误请指正。?号处也请各位指点下,谢谢。
移动设备也就是手机、平板等通过手指点击屏幕操作的设备,Unity有专门的接口检测与屏幕互动的各个手指的位置状态等信息
与屏幕接触的手指的信息对应名为Touch类的对象,可以通过Input.Touches变量得到所有Touch
Touch常用的参数
FingerId:手机的编号,整型
Phase:手机的阶段,枚举类型,分为这几个阶段:Began开始接触屏幕、Moved移动、Stationary静止、Ended手指离开屏幕、Canceled系统关闭触控
Position:手指触碰屏幕的位置,Vector2类型,坐标以屏幕左下角为原点1像素对应一个单位
例如:iPhone 4s的分辨率是960X640,所以如果应用是横屏的话,那么左下角的Position是(0,0),右上角的Position是(960,640)
1实测
得到手机的信息并输出到屏幕,这里先进行基本的介绍
using UnityEngine; using System.Collections; public class C_3_8_3_1 : MonoBehaviour { void OnGUI() { //遍历所有Touch foreach(Touch touch in Input.touches) { //输出Touch信息 GUILayout.Label(string.Format("手指:{0} 状态:{1} 位置:{2}",touch.fingerId,touch.phase.ToString(),touch.position)); } } }
2重力感应
Acceleration,即加速度传感或重力感应
有很多游戏的主要操作是基于重力感应的,例如:Mega jump和Froggy jump
通过代码将重力感应信息输出至屏幕,观察设备以不同朝向转动是Input.acceleration值的变化
using UnityEngine; using System.Collections; public class C_3_8_3_2 : MonoBehaviour { void OnGUI() { GUILayout.Label("X:"+ Input.acceleration.x); GUILayout.Label("Y:"+ Input.acceleration.y); GUILayout.Label("Z:"+ Input.acceleration.z); } }
3其他
Input还有一个接口可以在设备运行游戏时得到关于设备输入的信息,下面简单介绍几个接口
通过Input.deviceOrientation可以得到当前游戏运行的朝向
通过Input.touchSupported可以得到当前游戏是否支持手指触控操作
通过Input.multiTouchEnabled可以设置游戏是否支持多点触控
标签:
原文地址:http://www.cnblogs.com/kubll/p/4959793.html