歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Unity3D在Android的場景中選擇一個物體讓他旋轉平移

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

日期:2017/3/1 10:22:08   编辑:Linux編程

我今天才知道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. if(Input.GetKey(KeyCode.Escape)){
  18. Application.Quit();
  19. }
  20. }

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

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

Copyright © Linux教程網 All Rights Reserved