歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Unity3D Android的“搖一搖”效果

之前看過有人用Android寫過“搖一搖”效果,今天我用unity謝謝,都差不多的。沒做這個效果之前,我對Input.acceleration的x,y,z值的范圍只是[-1,1],也沒想過失重和超重,而且一直用眼睛來觀察值的變化,結果發現“沒變”,後來有個高手提醒我失重和超重,所以我就寫了兩個函數檢測了一下,我用力搖和抖動手機,發現x,y,z值的范圍大致都在[-4,4]之間,在這個范圍內,你搖的越快值變化的越大,所以我們只用求相對時間裡面變化的值大於某一個值就可以達到“搖一搖”的效果了。

  1. var old_y:float=0;  
  2. var new_y:float;  
  3. var max_y:float=0;  
  4. var min_y:float=0;  
  5. var d_y:float=0;  
  6. function Update () {   
  7.    new_y=Input.acceleration.y;  
  8.    d_y=new_y-old_y;  
  9.    old_y=new_y;  
  10.    if(Input.GetKey(KeyCode.Escape)){  
  11.       Application.Quit();  
  12.    }    
  13.        
  14. }  
  15. var i:int;  
  16. function OnGUI(){    
  17.     GUI.Label(Rect(100,100,100,100),"g:"+Input.acceleration+"d_y:"+d_y);  
  18.     GUI.Label(Rect(100,210,100,100),"i:"+i);  
  19.     if(d_y>2){  
  20.       i++;  
  21.     }  
  22. }  

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved