日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D 游戏引擎之平面小球重力感应详解【转】

發布時間:2024/6/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D 游戏引擎之平面小球重力感应详解【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

http://blog.csdn.net/xys289187120/article/details/6969333? ? ?

?手機重力感應應該對大多數開發者并不陌生,在新一代智能手機Android? IOS WP7 很多游戲都是使用手機自帶重力感應功能制作的,強大的Unity3D 游戲引擎當然對這個也是完美支持的,今天由MOMO帶大家學習3D 世界中的手機重力感應。本章我們的目標是實現一個小球在屏幕中通過搖晃手機重力加速度讓小球在屏幕中移動。以前的Android系列開發文章中貌似也寫過,其實原理都是一樣一樣一樣的,廢話不多說了。哇咔咔~~

?

?

?

先看一看Unity3D 在iPhone上的重力分布圖。如下圖所示我們可以清晰的看出X Y Z 三個方向的重力分量。Unity3D中重量的取值范圍是 -1.0 到 +1.0.

?

X軸:home按鍵在下手機面朝天向右旋轉90度重力分量為+1.0? 向左旋轉90度重力分量為-1.0

Y軸:home按鍵在上手機背朝自己重力分量為+1.0 home按鍵在下手機面朝自己重力分量為-1.0

Z軸:手機面朝地面重力分量為+1.0 手機面朝天空重力分量為-1.0

?

OK! 有了這三組重要的數值我們就可以控制手機重力感應啦,緊接著我們看看小球重力感應的這個游戲小例子。

?

?

?

?

?


?

?

?

打開Unity3D 我們將給攝像機綁定一個腳本,用來響應用戶控制手機來重力感應游戲小球的移動。

在Input 這個重要的類中,Unity3D 幫我們封裝了重力加速的方法。

?

Input.acceleration.x; 重力感應X軸的重力分量

Input.acceleration.y; 重力感應Y軸的重力分量

Input.acceleration.z; 重力感應Z軸的重力分量

?

?

?

new.js

?

?

[javascript]?view plaincopy
  • //小球的貼圖??
  • var?round?:?Texture2D;????
  • ??
  • //小球在屏幕中顯示的X?Y坐標??
  • var?x?=?0;??
  • var?y?=?0;??
  • ??
  • //小球屏幕顯示的最大?X?Y?范圍??
  • var?cross_x?=?0;??
  • var?cross_y?=?0;??
  • ??
  • ??
  • function?Start(){??
  • ????//初始化賦值??
  • ????cross_x?=?Screen.width?-??round.width;????
  • ????cross_y?=?Screen.height?-??round.height;??????
  • }??
  • ??
  • function?OnGUI?()?{??
  • ??
  • ????//整體顯示?x?y?z?重力感應的重力分量??
  • ????GUI.Label(Rect(0,0,480,100),"position?is?"?+?Input.acceleration);??
  • ??????
  • ????//繪制小球??
  • ????GUI.DrawTexture(Rect(x,y,256,256),round);?????
  • }??
  • ??
  • function?Update(){??
  • ??????
  • ????//根據重力分量修改小球的位置這里乘以30的意思是讓小球移動的快一些??
  • ????x?+=?Input.acceleration.x?*?30;??
  • ????y?+=?-Input.acceleration.y?*?30;??????
  • ??????
  • ??????
  • ????//避免小球超出屏幕??
  • ????if(x?<?0){????
  • ????????x?=?0;????
  • ????}else?if(x?>?cross_x){????
  • ????????x?=?cross_x;????
  • ????}????
  • ????????
  • ????if(y?<?0){????
  • ????????y?=?0;????
  • ????}else?if(y?>?cross_y){????
  • ????????y?=?cross_y;????
  • ????}????
  • }??


  • ?

    ?

    ?

    重力感應的圖片不太好截取,我們看看下面的示意圖,小球可以根據我的手機的重力而移動。屏幕左上方正常打印手機當前X Y Z 三個方向的重力分量。

    ?

    ?


    ?

    ?

    說到這里,可能會有盆友問我如何為3D的物體添加重力感應?其實方法是一樣的,因為都是一樣的道理,比如我可以給一個模型綁定一個這樣的腳本,通過Input.acceleration去拿到當前手機的重力感應分量,然后根據這個分量去計算當前模型的位置。細心的盆友你們可以試一試,其實很簡單的哇咔咔~~

    ?

    ?

    ?

    最后歡迎各位盆友可以和MOMO一起討論Unity3D游戲開發,總的來說這一章還是比較簡單的,哇咔咔~~~ 附上Unity3D工程的下載地址,Xcode項目我就不上傳了,須要的自己導出。

    ?

    下載地址:http://www.xuanyusong.com/archives/537

    ?

    轉載于:https://www.cnblogs.com/songtzu/archive/2013/04/09/3009547.html

    總結

    以上是生活随笔為你收集整理的Unity3D 游戏引擎之平面小球重力感应详解【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。