Unity3D技术之IOS中平面多点触摸技术详解

点击File->New Project 创建一个工程,可以使用默认 或者 名称随便起一起即可。点击继续完成创建工程。


 

 


Scene:游戏场景视图,这里面可以摆放任意场景模型。

Camera Preview:摄像头正对方向屏幕显示内容

MainCamera:创建工程后默认会添加游戏的主摄像头,在场景视图中我们可以看见 MainCamera在三维坐标系中的位置。


 

 


我们今天的目标实际上就是让摄像头正对一个平面,在这个平面中实现多点触摸。

 

        下面介绍一下脚本的使用,为了让摄像头显示我们须要给主摄像头绑定脚本,如下图所示,点击红框内的Create 出现下拉列表,先创建两个文件夹,Image用来存放图片,Scripts用来存放脚本。 因为iPhone 4 的分辨率是960×640 所以找到一张 960×640的图片做为屏幕背景图,然后在找一张小一点的图片做为触摸后在屏幕中显示的图片。


 


       Unity支持三种的脚本分别是javascript,C# Script,Boo Script, 官方推荐使用javascript来编写,所以我们也就用javascript。但是实际开放中我比较喜欢用C#。

 

创建一个脚本名称为menu.js,声明了两个变量 imageMenu 与 imageItem 来储存游戏背景显示与游戏触摸显示的纹理图片。

 

function OnGUI () : 这个方法用来通知屏幕绘制。

DrawTexture: 绘制纹理。

Label:绘制一个文本。

iPhoneInput.touchCount :得到多点触摸的数量。

iPhoneInput.GetTouch(i).position: 得到循环中每一个多点触摸的位置。

iPos.x : 触摸的x坐标

iPos.y : 触摸的y坐标(左上角为00点的Y坐标)

GUI.DrawTexture(Rect(x,960 – y ,120,120),imageItem);

960 – y : 因为取得的y坐标是左上角00点的坐标,而Unity绘制是以左下角为00点的坐标,不处理直接用y的话坐标就是一个反的,所以这里用 iPhone 4的 高度 960  减去 当前触摸的就算出触摸正确的显示坐标。

 

1. 

2. var imageMenu :Texture2D;

3. 

4. var imageItem :Texture2D;

5. 

6. function OnGUI () {

7. 

8.         GUI.DrawTexture(Rect(0,0,640,960),imageMenu);

9. 

10.      var touchCount = iPhoneInput.touchCount;

11.      for(var i = 0; i < touchCount; i++)

12.      {

13.              var iPos = iPhoneInput.GetTouch(i).position;

14.              var x = iPos.x;

15.              var y = iPos.y;

16. 

17.               GUI.DrawTexture(Rect(x,960 - y ,120,120),imageItem);

18. 

19.               GUI.Label(Rect(x, 960 - y,120,120),"Touch position is  " + iPos);

20.      }

21. 

22. }

 

 

脚本已经添加完毕,接下来是绑定变量。文章出处【狗刨学习网】

 

      先将menu.js拖拽到Maincamera中,可以看到右下角红框中出现两个没有赋值的变量 ImageMenu ImageItem ,因为上面脚本中声明了这两个变量,这里就会出现。在这里须要对这两个变量赋值。然后拖拽图片放入为其赋值。

 

 

 


        OK 接下来就是build and run ,具体方法见上一章,这里就不罗嗦了。 我们看看运行在iPhone上的真机效果图。

 

        因为Unity3D for iPhone 只支持 5点触摸,所以我将5根手指头放入iPhone 4中 图中清楚的记录我的5根手指头所在屏幕中的位置,以及正确的贴上了须要显示的图片。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值