我今天才知道OnMouse***()系列函数在手机上不能用,因为手机没有鼠标,所以只能用touch,后来有人想实现在场景中选中任一一个物体让他旋转平移,我试着做了一下,用到Raycast类,大家去看看api吧,呵呵~~~
不足之处:我本来想旋转和平移都用一个手指来表示的,但是没办法,因为旋转和平移都用到了TouchPhase.Moved,所以我最后就用Input.touchCount来区别旋转和平移了。如果那位大侠有更好的办法,还请多指点啊~~~~我的QQ:397319689(有点笨)
代码如下:
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();
}
}
里面有些不足之处,请多多包涵~~~~