我今天才知道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 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11