unity3d游戏开发之平面小球重力感应详解_第1页
unity3d游戏开发之平面小球重力感应详解_第2页
unity3d游戏开发之平面小球重力感应详解_第3页
unity3d游戏开发之平面小球重力感应详解_第4页
unity3d游戏开发之平面小球重力感应详解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 手机重力感应应该对大多数开发者并不陌生,在新一代智能手机android  IOS WP7 很多游戏都是使用手机自带重力感应功能制作的,强大的unity3D 游戏引擎当然对这个也是完美支持的,今天由MOMO带大家学习3D 世界中的手机重力感应。本章我们的目标是实现一个小球在屏幕中通过摇晃手机重力加速度让小球在屏幕中移动。以前的Android系列开发文章中貌似也写过,其实原理都是一样一样一样的,废话不多说了。哇咔咔       先看一看unity3d 在iPhone上的重力分布图。如下图所示我们可以清晰的看

2、出X Y Z 三个方向的重力分量。Unity3D中重量的取值范围是 -1.0 到 +1.0.      出自狗刨学习网        向左旋转90度重力分量为-1.0       Y轴:home按键在上手机背朝自己重力分量为+1.0 home按键在下手机面朝自己重力分量为-1.0      Z轴:手机面朝地面重力分量为+1.0 手机面朝天空重力分量为-1.0       OK!

3、 有了这三组重要的数值我们就可以控制手机重力感应啦,紧接着我们看看小球重力感应的这个游戏小例子。                                       打开Unity3D 我们将给摄像机绑定一个脚本,用来响应用户控制手机来重力感应游戏小球的移动。       在Input 这个

4、重要的类中,Unity3D 帮我们封装了重力加速的方法。       Input.acceleration.x; 重力感应X轴的重力分量       Input.acceleration.y; 重力感应Y轴的重力分量       Input.acceleration.z; 重力感应Z轴的重力分量      1. /小球的贴图2. var round : Texture2D;  3.   4. /小

5、球在屏幕中显示的X Y坐标5. var x = 0;6. var y = 0;7.   8. /小球屏幕显示的最大 X Y 范围9. var cross_x = 0;10. var cross_y = 0;11.   12. function Start()13.      /初始化赋值14.     cross_x = Screen.width -  round.width;  15.     cross_y = Screen.hei

6、ght -  round.height;      16. 17.   18. function OnGUI () 19.   20.     /整体显示 x y z 重力感应的重力分量21.     GUI.Label(Rect(0,0,480,100),"position is " + Input.acceleration);22.   23.     /绘制小球24.   

7、0; GUI.DrawTexture(Rect(x,y,256,256),round);   25. 26.   27. function Update()28.   29.     /根据重力分量修改小球的位置这里乘以30的意思是让小球移动的快一些30.     x += Input.acceleration.x * 30;31.     y += -Input.acceleration.y * 30;    32.   3

8、3.     /避免小球超出屏幕34.     if(x < 0) 35.         x = 0;  36.     else if(x > cross_x) 37.         x = cross_x;  38.      39.   40.     if(y &l

9、t; 0) 41.         y = 0;  42.     else if(y > cross_y) 43.         y = cross_y;  44.      45. 复制代码       重力感应的图片不太好截取,我们看看下面的示意图,小球可以根据我的手机的重力而移动。屏幕左上方正常打印手机当前X Y

10、 Z 三个方向的重力分量。                                        说到这里,可能会有盆友问我如何为3D的物体添加重力感应?其实方法是一样的,因为都是一样的道理,比如我可以给一个模型绑定一个这样的脚本,通过Input.acceleration去拿到当前手机的重力感应分量,然后根据这个分量去计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论