Unity3D在Android的场景中选择一个物体让他旋转平移

我今天才知道OnMouse***()系列函数在手机上不能用,因为手机没有鼠标,所以只能用touch,后来有人想实现在场景中选中任一一个物体让他旋转平移,我试着做了一下,用到Raycast类,大家去看看api吧,呵呵~~~

不足之处:我本来想旋转和平移都用一个手指来表示的,但是没办法,因为旋转和平移都用到了TouchPhase.Moved,所以我最后就用Input.touchCount来区别旋转和平移了。如果那位大侠有更好的办法,还请多指点啊~~~~

代码如下:

function Update (){              var ray = Camera.main.ScreenPointToRay (Input.GetTouch(0).position);          var hit:RaycastHit;          if(Physics.Raycast(ray,hit)){                          if(Input.GetTouch(0).phase==TouchPhase.Moved){                //一个手指控制平移               if(Input.touchCount==1){                            hit.collider.transform.position.x=hit.point.x;                hit.collider.transform.position.y=hit.point.y;              }else{                  //多个手指控制旋转                      hit.collider.transform.RotateAround(hit.collider.transform.position,Vector3.up,-Input.GetAxis("Mouse X"));                hit.collider.transform.RotateAround(hit.collider.transform.position,-Vector3.right,-Input.GetAxis("Mouse Y"));              }             }          }                if(Input.GetKey(KeyCode.Escape)){            Application.Quit();         }        }  

里面有些不足之处,请多多包涵~~~~

更多Android相关信息见Android 专题页面 ?tid=11

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppfpj.html