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.bkjia.com/topicnews.aspx?tid=11

相关内容