我今天才知道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