强子 发表于 2013-3-5 18:42

Unity3D 手机中Input类中touch详解


--------------------------------
1.Input.touchCount 触摸随之增长一秒50次增量
2.Input.GetTouch(0).phase==TouchPhase.Moved   手指滑动中最后一帧滑动的状态 是 运动的
3.TouchPhase触摸的几个状态
4.Touch.deltaPosition 增量位置   (Input.GetTouch(0).deltaPosition)最后一帧滑动的值只返回xy轴坐标 也可用vector3(z轴为0) 所以一般用vector2接收

--------------------------------static var aa:int;
function Update () {
        if(Input.touchCount>0)
        {
                print(Input.touchCount);
        }
}
function OnGUI()
{
        GUI.Label(Rect(34,34,34,34),"sdff");
}touchCount指的是触摸帧的数量。
要注意的是:touch事件 只能在模拟器或者真机上运行(已测试通过) 大约一秒钟touch不放    touchCount+50次左右


2.Input.touches 触摸列表// Prints number of fingers touching the screen
//输出触摸在屏幕上的手指数量

function Update () {
        var fingerCount = 0;
        for (var 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");
}3.让cube 随着touch 移动代码:static var count:int; //定义touchCount数

var particle_:GameObject;//定义存放cube对象
var touchposition:Vector3; //存储移动三维坐标值
function Update () {
        if(Input.touchCount>0)
        {
                        count+=Input.touchCount;
                       
        }
        if((Input.touchCount>0&&Input.GetTouch(0).phase==TouchPhase.Moved)) //如果点击手指touch了并且手指touch的状态为移动的
        {
                touchposition=Input.GetTouch(0).deltaPosition;//获取手指touch最后一帧移动的xy轴距离
                particle_.transform.Translate(touchposition.x*0.01,touchposition.y*0.01,0);//移动这个距离
        }
               
       
}
function OnGUI()
{
        GUI.Label(Rect(10,10,100,30),"cishu:"+count.ToString());
        GUI.Label(Rect(10,50,100,30),touchposition.ToString());

}真机或模拟器测试即可

强子 发表于 2013-3-5 18:42

获取touch   指定texture的代码:
static var aa:int;
var text_ture:GUITexture;
function Update () {
var count=Input.touchCount;
      for(var i:int=0;i<count;i++)
      {
                        var touch:Touch=Input.GetTouch(i);
                if(text_ture.HitTest(touch.position)&&touch.phase==TouchPhase.Began)
                {
                        aa++;
                }
               
      }
}
function OnGUI()
{
      GUI.Label(Rect(34,34,34,34),aa.ToString());
      
}

chenshiran1234 发表于 2013-3-28 16:08

好定西丫好东西

cxbsr 发表于 2013-5-23 12:29


膜拜中。。。。{:soso__7524161091986203637_5:}

gywinner 发表于 2013-6-20 01:13


好定西丫好东西

mbb 发表于 2016-10-29 23:48

好厉害6666666666666666666666

pungipungi 发表于 2017-3-6 08:02

楼主是超人

linhao0824 发表于 2017-3-6 07:24

真心顶

hetianlong 发表于 2017-3-6 08:05

说的非常好

woerxi 发表于 2017-3-6 08:17

很好哦
页: [1]
查看完整版本: Unity3D 手机中Input类中touch详解