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

Unity3D在Android的場景中選擇一個物體讓他旋轉平移

我今天才知道OnMouse***()系列函數在手機上不能用,因為手機沒有鼠標,所以只能用touch,後來有人想實現在場景中選中任一一個物體讓他旋轉平移,我試著做了一下,用到Raycast類,大家去看看api吧,呵呵~~~

不足之處:我本來想旋轉和平移都用一個手指來表示的,但是沒辦法,因為旋轉和平移都用到了TouchPhase.Moved,所以我最後就用Input.touchCount來區別旋轉和平移了。如果那位大俠有更好的辦法,還請多指點啊~~~~

代碼如下:

  1. function Update (){      
  2.        var ray = Camera.main.ScreenPointToRay (Input.GetTouch(0).position);  
  3.        var hit:RaycastHit;  
  4.        if(Physics.Raycast(ray,hit)){                
  5.          if(Input.GetTouch(0).phase==TouchPhase.Moved){  
  6.              //一個手指控制平移   
  7.            if(Input.touchCount==1){              
  8.              hit.collider.transform.position.x=hit.point.x;  
  9.              hit.collider.transform.position.y=hit.point.y;  
  10.            }else{    
  11.              //多個手指控制旋轉        
  12.              hit.collider.transform.RotateAround(hit.collider.transform.position,Vector3.up,-Input.GetAxis("Mouse X"));  
  13.              hit.collider.transform.RotateAround(hit.collider.transform.position,-Vector3.right,-Input.GetAxis("Mouse Y"));  
  14.            }   
  15.          }  
  16.        }  
  17.       
  18.       if(Input.GetKey(KeyCode.Escape)){  
  19.          Application.Quit();  
  20.       }    
  21.    }  

裡面有些不足之處,請多多包涵~~~~

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

Copyright © Linux教程網 All Rights Reserved