Unity3D 游戏引擎之实现平面多点触摸
来源:互联网 发布:hifi音乐软件 编辑:程序博客网 时间:2024/06/03 05:40
Unity游戏引擎之实现平面多点触摸
雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/466
在上一章中已经介绍了Unity for 3D 游戏引擎的构建,从本章以后我将带领大小盆友们一起更进一步的学习Unity游戏引擎。先从Unity平面开始,本章介绍Unity 平面上的多点触摸。
点击File->New Project 创建一个工程,可以使用默认 或者 名称随便起一起即可。点击继续完成创建工程。
Scene:游戏场景视图,这里面可以摆放任意场景模型。
Camera Preview:摄像头正对方向屏幕显示内容
MainCamera:创建工程后默认会添加游戏的主摄像头,在场景视图中我们可以看见 MainCamera在三维坐标系中的位置。
我们今天的目标实际上就是让摄像头正对一个平面,在这个平面中实现多点触摸。
下面介绍一下脚本的使用,为了让摄像头显示我们须要给主摄像头绑定脚本,如下图所示,点击红框内的Create 出现下拉列表,先创建两个文件夹,Image用来存放图片,Scripts用来存放脚本。 因为iPhone 4 的分辨率是960x640 所以找到一张 960x640的图片做为屏幕背景图,然后在找一张小一点的图片做为触摸后在屏幕中显示的图片。
Unity支持三种的脚本分别是javascript,C# Script,Boo Script, 官方推荐使用javascript来编写,所以我们也就用javascript。
创建一个脚本名称为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 run ,具体方法见上一章,这里就不罗嗦了。 我们看看运行在iPhone上的真机效果图。
因为Unity3D for iPhone 只支持 5点触摸,所以我将5根手指头放入iPhone 4中 图中清楚的记录我的5根手指头所在屏幕中的位置,以及正确的贴上了须要显示的图片。
- Unity3D 游戏引擎之实现平面多点触摸(二)
- Unity3D 游戏引擎之实现平面多点触摸
- Unity3D 游戏引擎之实现平面多点触摸(二)
- Unity3D 游戏引擎之实现平面多点触摸(二)
- Unity3D 游戏引擎之实现平面多点触摸
- Unity3D For iPhone游戏引擎之实现平面多点触摸(二)
- Unity3D研究院之IOS实现平面多点触摸(二)
- 多点触摸unity3d
- Unity3D的多点触摸
- Android游戏开发之单点触摸与多点触摸
- Unity3D 游戏引擎之平面小球重力感应详解(十三)
- cocos2dx游戏开发之利用多点触摸(实现缩放功能或者简单的手势识别)
- cocos2dx游戏开发之利用多点触摸(实现缩放功能或者简单的手势识别)
- cocos2dx游戏开发之利用多点触摸(实现缩放功能或者简单的手势识别)
- Unity3D技术之IOS中平面多点触摸技术详解
- Unity 实现多点触摸
- Android多点触摸实现
- Unity3D 游戏引擎之利用C#实现代理模式
- jquery set_input_default默认值设置
- usaco Palindromic Squares 解题报告
- 用PYTHON获取本机的IP地址
- java中hashcode()与equals()详解
- C#创建与调用Webservice基础
- Unity3D 游戏引擎之实现平面多点触摸
- Linux驱动修炼之道-SPI驱动框架源码分析(上)
- Could not find action or result问题
- 如何将类似于EditPlus的软件添加到右键菜单
- 虽然我还没有测试过,但是我觉得有必要收藏一下,谢谢原创者
- 2010-09-26 10:06 jq拖动(ui.draggable.packed.js,ui.core.packed.js)
- Linux驱动修炼之道-SPI驱动框架源码分析(中)
- 程序员的情书
- js思维导图