unity3d 手机中Input类中touch详解_教程

来源:互联网 发布:linux vi 删除多行 编辑:程序博客网 时间:2024/06/05 17:33

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)) //[color=Red]如果点击手指touch了  并且手指touch的状态为移动的[/color]

        {

                touchposition=Input.GetTouch(0).deltaPosition;  //[color=Red]获取手指touch最后一帧移动的xy轴距离[/color]

               particle_.transform.Translate(touchposition.x*0.01,touchposition.y*0.01,0);//[color=Red]移动这个距离[/color]

        }

               

       

}

function OnGUI()

{

        GUI.Label(Rect(10,10,100,30),"cishu:"+count.ToString());

        GUI.Label(Rect(10,50,100,30),touchposition.ToString());


}

摘自:http://blog.sina.com.cn/s/blog_81fefc230100wqt9.html

0 0
原创粉丝点击