日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Unity3D游戲引擎之平面小球重力感應(yīng)詳解

 手機(jī)重力感應(yīng)應(yīng)該對(duì)大多數(shù)開發(fā)者并不陌生,在新一代智能手機(jī)Android  IOS WP7 很多游戲都是使用手機(jī)自帶重力感應(yīng)功能制作的,強(qiáng)大的Unity3D 游戲引擎當(dāng)然對(duì)這個(gè)也是***支持的,今天由MOMO帶大家學(xué)習(xí)3D 世界中的手機(jī)重力感應(yīng)。本章我們的目標(biāo)是實(shí)現(xiàn)一個(gè)小球在屏幕中通過(guò)搖晃手機(jī)重力加速度讓小球在屏幕中移動(dòng)。以前的Android系列開發(fā)文章中貌似也寫過(guò),其實(shí)原理都是一樣一樣一樣的,廢話不多說(shuō)了。哇咔咔~~

成都創(chuàng)新互聯(lián)公司云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、內(nèi)江服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、虛擬主機(jī)、主機(jī)域名、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

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

X軸:home按鍵在下手機(jī)面朝天向右旋轉(zhuǎn)90度重力分量為+1.0  向左旋轉(zhuǎn)90度重力分量為-1.0

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

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

OK! 有了這三組重要的數(shù)值我們就可以控制手機(jī)重力感應(yīng)啦,緊接著我們看看小球重力感應(yīng)的這個(gè)游戲小例子。

打開Unity3D 我們將給攝像機(jī)綁定一個(gè)腳本,用來(lái)響應(yīng)用戶控制手機(jī)來(lái)重力感應(yīng)游戲小球的移動(dòng)。

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

Input.acceleration.x; 重力感應(yīng)X軸的重力分量

Input.acceleration.y; 重力感應(yīng)Y軸的重力分量

Input.acceleration.z; 重力感應(yīng)Z軸的重力分量

new.js

[代碼]js代碼:

01 //小球的貼圖 
02 var round : Texture2D;   
03    
04 //小球在屏幕中顯示的X Y坐標(biāo) 
05 var x = 0; 
06 var y = 0; 
07    
08 //小球屏幕顯示的*** X Y 范圍 
09 var cross_x = 0; 
10 var cross_y = 0; 
11    
12    
13 function Start(){ 
14     //初始化賦值 
15     cross_x = Screen.width -  round.width;   
16     cross_y = Screen.height -  round.height;     
17
18    
19 function OnGUI () { 
20    
21     //整體顯示 x y z 重力感應(yīng)的重力分量 
22     GUI.Label(Rect(0,0,480,100),"position is " + Input.acceleration); 
23        
24     //繪制小球 
25     GUI.DrawTexture(Rect(x,y,256,256),round);    
26
27    
28 function Update(){ 
29        
30     //根據(jù)重力分量修改小球的位置這里乘以30的意思是讓小球移動(dòng)的快一些 
31     x += Input.acceleration.x * 30; 
32     y += -Input.acceleration.y * 30;     
33        
34        
35     //避免小球超出屏幕 
36     if(x < 0){   
37         x = 0;   
38     }else if(x > cross_x){   
39         x = cross_x;   
40     }   
41          
42     if(y < 0){   
43         y = 0;   
44     }else if(y > cross_y){   
45         y = cross_y;   
46     }   
47 }

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

說(shuō)到這里,可能會(huì)有盆友問(wèn)我如何為3D的物體添加重力感應(yīng)?其實(shí)方法是一樣的,因?yàn)槎际且粯拥牡览?,比如我可以給一個(gè)模型綁定一個(gè)這樣的腳本,通過(guò) Input.acceleration去拿到當(dāng)前手機(jī)的重力感應(yīng)分量,然后根據(jù)這個(gè)分量去計(jì)算當(dāng)前模型的位置。細(xì)心的盆友你們可以試一試,其實(shí)很簡(jiǎn)單的哇咔咔~~


網(wǎng)頁(yè)標(biāo)題:Unity3D游戲引擎之平面小球重力感應(yīng)詳解
轉(zhuǎn)載來(lái)源:http://www.dlmjj.cn/article/djgoedc.html