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


上一篇写了关于Unity中的世界坐标转换为NGUI中的坐标,这篇来写一下关于NGUI中的坐标转换为Unity中的世界坐标,代码如下:

 1       GameObject targetObject = (GameObject)Instantiate(Resources.Load("Model/"+name));  2          Camera worldcamera = NGUITools.FindCameraForLayer(targetObject.layer);     //这里是通过物体的层获得相应层上的相机
 3          Camera guiCamera = NGUITools.FindCameraForLayer(obj.layer);   //通过脚本所在物体的层获得相应层上的相机
 4          if (worldcamera == null || guiCamera == null)  5  {  6             return;  7  }  8         Vector3 pos = guiCamera.WorldToScreenPoint(obj.transform.position);         //获取UI界面的屏幕坐标
 9         pos.z = 1f;//设置为零时转换后的pos全为0,屏幕空间的原因,被坑过的我提醒大家,切记要改!
10         pos = worldcamera.ScreenToWorldPoint(pos);                              //将屏幕坐标转换为世界坐标
11         pos.y = 0f; 12         targetObject.transform.position = new Vector3(pos.x, pos.y, pos.z);      //将修改过的坐标赋给目标物体坐标

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM