您的位置:首页 > 移动开发 > Unity3D

将NGUI的坐标转换Unity中的世界坐标

2014-08-14 08:10 537 查看
上一篇写了关于Unity中的世界坐标转换为NGUI中的坐标,这篇来写一下关于NGUI中的坐标转换为Unity中的世界坐标,代码如下:

     GameObject targetObject = (GameObject)Instantiate(Resources.Load("Model/"+name));
Camera worldcamera = NGUITools.FindCameraForLayer(targetObject.layer);     //这里是通过物体的层获得相应层上的相机
Camera guiCamera = NGUITools.FindCameraForLayer(obj.layer);   //通过脚本所在物体的层获得相应层上的相机
if (worldcamera == null || guiCamera == null)
{
return;
}
Vector3 pos = guiCamera.WorldToScreenPoint(obj.transform.position);         //获取UI界面的屏幕坐标
pos.z = 1f;//设置为零时转换后的pos全为0,屏幕空间的原因,被坑过的我提醒大家,切记要改!
pos = worldcamera.ScreenToWorldPoint(pos);                              //将屏幕坐标转换为世界坐标
pos.y = 0f;
targetObject.transform.position = new Vector3(pos.x, pos.y, pos.z);      //将修改过的坐标赋给目标物体坐标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: