Touch

原创 2013年12月04日 20:58:29

Input.touchCountstatic int touchCount;
Description

Number of touches. Guaranteed not to change throughout the frame. (Read Only)

PC上不能触摸,所以这个值总是为0。在小米手机上,经本人测试,为触摸在屏幕上的手指数量。所以我们一般要在检测触摸事件前加上一句判断

if(Input.touchCount>0)
{
    if(Input.GetTouch(0).phase==TouchPhase.Began)
    {
	oldloc=Input.GetTouch(0).position;
	touched=true;
    }
}

在PC上若没有if(Input.touchCount>0)这句判断,由于没有触摸事件,所以Input.touchCount始终为0,Input.GetTouch(0)将出错。

Input.touches
static Touch[] touches;

Description

Returns list of objects representing status of all touches during last frame. (Read Only) (Allocates temporary variables).

Each entry represents a status of a finger touching the screen.

返回所有触摸点信息的列表。返回值是一个数组,该数组的长度与Input.touchCount相同。

 

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    void Update() {
        int fingerCount = 0;
        foreach (Touch touch in Input.touches) {
            if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
                fingerCount++;
            
        }
        if (fingerCount > 0)
            print("User has " + fingerCount + " finger(s) touching the screen");
        
    }
}

Input.GetTouch

static Touch GetTouch(int index);
Description

Returns object representing status of a specific touch. (Does not allocate temporary variables).

返回Touch类,Touch类包含了对应index所对应的触摸状态信息。

Touch.fingerId

触摸的唯一标识。所有的触摸都在Input.touchs数组中,也可以使用Input.GetTouch函数和有效的数组索引来获取。然而,不能保证数组索引在两帧之间是相同的。fingerID却不同,它在不同帧之间总是指向同一个触摸。

All current touches are reported in theInput.touches array or by using theInput.GetTouch function with the equivalent array index. However, the array index is not guaranteed to be the same from one frame to the next. ThefingerID value, however, consistently refers to the same touch across frames. This ID value is very useful when analysing gestures and is more reliable than identifying fingers by their proximity to previous position, etc.

Touch.deltaPosition

自从上一次Update以来的触摸移动,可以用来实现游戏物体随触摸移动而一定。Touch.deltaTime则代表与delatPosition对应的时间段。触摸的绝对位置为Touch.position


	public GameObject panel;
	void Update()
	{
		if(Input.touchCount>0)
		{
			if(Input.GetTouch(0).phase==TouchPhase.Moved)
			{
				Vector2 deltaTouchDis=Input.GetTouch(0).deltaPosition;
				panel.transform.Translate(deltaTouchDis.x*0.01f,0,0);

The position delta since last change.

The absolute position of the touch is recorded periodically and available in theposition property. The deltaPosition value is a Vector2 that represents the difference between the touch position recorded on the most recent update and that recorded on the previous update. ThedeltaTime value gives the time that elapsed between the previous and current updates; you can calculate the touch's speed of motion by dividing deltaPosition.magnitude by deltaTime.

相关文章推荐

Unity中的Input.Touch,移动端的触摸操作

这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作。     iOS和Android设备能够支持多点触控。在unity中你可以通过Input.touches属性集合访问在最近一帧中触摸...

Unity3D手机中Input类touch详解

Unity3D手机中Input类touch详解: 1.Input.touchCount 触摸随之增长,一秒50次增量。 2.Input.GetTouch(0).phase==TouchPh...

Unity中触摸和鼠标操作的几个问题

关键点1:在unity中touch事件同时也会触发GetMouseButton事件,有时候可能会给你带来方便,但是如果没有意识到这个问题的话,也很可能给你带来很大的麻烦。关键点2:触摸操作也可以使用I...

easy touch 5.0

  • 2017年11月03日 14:34
  • 12.72MB
  • 下载

android 关于touch demo

  • 2016年07月20日 11:26
  • 1.59MB
  • 下载

sencha touch下添加自定义cordova plugin的方法

首先,只有sencha touch和cordova环境的配置方法就不赘述了,可以查看官方API。 sencha 2.3.1Api:http://docs.sencha.com/touch/2.3.1/...

特斯拉TOUCH电子烟升级工具

  • 2017年07月03日 22:20
  • 11.35MB
  • 下载

MacOS Touch bar 设计规范

  • 2016年11月08日 14:21
  • 2.01MB
  • 下载

javascript——touch事件介绍与实例演示

前言   诸如智能手机和平板电脑一类的移动设备通常会有一(capacitive touch-sensitivescreen),以捕捉用户的手指所做的交互。随着移动网络的发展,其能够支持越来越复杂...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Touch
举报原因:
原因补充:

(最多只允许输入30个字)