zoukankan      html  css  js  c++  java
  • 【Unity】7.5 移动设备输入

    分类:Unity、C#、VS2015

    创建日期:2016-04-21

    一、简介

    在iOS和Android系统中,操作都是通过触摸来完成的。Input类中对触摸操作的方法或变量如下图所示:

    image

    通过GetTouch或者touches可以访问移动没备的触摸数据,数据保存在Touch的结构体中。下图是Touch的结构体变量:

    image

    二、基本用法示例

    1、示例1(遍历所有Touch并输出Touch的信息)

    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、示例2(Demo5_2_MobileExample.unity)

    该例子演示如何打印当前触摸屏幕的手指数量。

    下面是MobileExample.cs文件中的代码:

    using UnityEngine;
    using System.Collections;
    public class MobileExample : MonoBehaviour
    {
        //定义手指在触摸屏上的数量
        public int fingerCount = 0;
    
        void Update()
        {
            foreach (var touch in Input.touches)
            {
                if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
                    fingerCount++;
            }
            if (fingerCount > 0)
                print("用户有 " + fingerCount + " 手指触摸了屏幕");
    
        }
    
        void OnGUI()
        {
            //输出手指在触摸屏上的数量至界面中
            GUILayout.Label("手指数量:" + fingerCount);
        }
    }

    运行预览效果:

    image

    3、示例3(Demo5_3_MobileMoveExample.unity)

    该例子演示如何根据手指在屏幕上的滑动来移动物体。

    MobileMoveExample.cs文件的代码如下:

    using UnityEngine;
    using System.Collections;
    
    public class MobileMoveExample : MonoBehaviour
    {
        public float speed = 0.1f;
        void Update()
        {
            if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
            {
                // 得到手指在这一帧的移动距离
                Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
                // 在XY平面上移动物体
                transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);
            }
        }
    }

    运行预览效果和示例2的截图相同。

  • 相关阅读:
    Corosync+Pacemaker+DRBD+Mysql高可用HA配置
    高可用集群corosync+pacemaker之crmsh使用
    nfs+DRBD+corosync+pacemaker 实现高可用(ha)的nfs集群
    nginx匹配
    2011年的最后一篇
    Python自然语言处理学习笔记(66):7.7 小结
    Python自然语言处理学习笔记(65):7.6 关系抽取
    Python自然语言处理学习笔记(64): 7.5 命名实体识别
    Python自然语言处理学习笔记(67):7.8 扩展阅读
    Python自然语言处理学习笔记(68):7.9 练习
  • 原文地址:https://www.cnblogs.com/rainmj/p/5415431.html
Copyright © 2011-2022 走看看