Unity3D在Android的场景中选择一个物体让他旋转平移
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 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11
评论暂时关闭