查看: 1407|回复: 2
打印 上一主题 下一主题

[提问] Unity3D之IOS实现平面多点触摸

[复制链接]

1446

主题

3

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
30927
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-9-20 10:27:00 |只看该作者 |倒序浏览


本章介绍Unity 平面上的多点触摸。
点击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  减去 当前触摸的Y 就算出触摸正确的显示坐标。


var imageMenu :Texture2D;


var imageItem :Texture2D;


function OnGUI () {


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


var touchCount = iPhoneInput.touchCount;
for(var i = 0; i < touchCount; i++)
{
var iPos = iPhoneInput.GetTouch(i).position;
var x = iPos.x;
var y = iPos.y;


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


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


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




OK 接下来就是build and***n ,具体方法见上一章,这里就不罗嗦了。 我们看看运行在iPhone上的真机效果图。
因为unity3d for iPhone 只支持 5点触摸,所以我将5根手指头放入iPhone 4中 图中清楚的记录我的5根手指头所在屏幕中的位置,以及正确的贴上了须要显示的图片。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

955

主题

164

听众

7万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
59338
精华
28

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

沙发
发表于 2012-9-20 18:53:21 |只看该作者
感谢分享,不错的教程。
回复

使用道具 举报

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2013-2-28 23:26:56 |只看该作者
希望在新的一年里专心的学习好Unity!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-29 21:59 , Processed in 0.112667 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部