码迷,mamicode.com
首页 > 移动开发 > 详细

Unity脚本——13输入控制——03移动设备输入

时间:2015-11-12 19:52:40      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:

学习笔记适合新手,如有错误请指正。?号处也请各位指点下,谢谢。

移动设备也就是手机、平板等通过手指点击屏幕操作的设备,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可以设置游戏是否支持多点触控

Unity脚本——13输入控制——03移动设备输入

标签:

原文地址:http://www.cnblogs.com/kubll/p/4959793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!