世界坐标转换到NGUI坐标:
场景中有一个照3D物体的透视摄像机,NGUI使用自己独立的正交摄像机,转换步骤如下:
1. 使用透视摄像机把世界坐标转换到屏幕坐标
Vector3 pos = Camera.main.WorldToScreenPoint(worldPos);
pos.z = 0f;
//z一定要为0.
2. 使用UI摄像机转换到NGUI的世界坐标
Vector3 pos2 = UICamera.currentCamera.ScreenToWorldPoint(pos);
3. 赋值给NGUI控件
temp.transform.position = pos2;
这个坐标可以赋值给NGUI控件,如果需要得到NGUI控件下子物体的坐标,如下:
1. 使用透视摄像机把世界坐标转换到屏幕坐标
Vector3 pos = Camera.main.WorldToScreenPoint(worldPos);//不需要使z为0
2.使用UI摄像机转换到NGUI的世界坐标
Vector3 pos2 = UICamera.currentCamera.ScreenToWorldPoint(pos);
3.获取子物体的上级父物体parantobj,然后获取坐标
Vector3 posres = parantObject.transform.InverseTransformPoint(poscamera);
4.复制给物体