您的位置:首页 > 移动开发 > Unity3D

Unity3D手机中Input类touch详解

2015-04-14 07:25 369 查看
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)) //[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());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: