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

unity中的坐标转换

2015-10-27 14:16 615 查看
3D坐标->3D坐标

比如现在需要在一个用3D摄像机渲染的物体(用A表示)的相对坐标为(10,-5,91)的地方放置一个物体(用B表示),则B的世界坐标为

Vector3 screenPos = Camera.main.WroldToScreenPoint(A.transformPoint(new Vector3(10,-5,91)));
Vector3 worldPos = Camera.main.ScreenToWorldPoint(screenPos );


3D坐标->2D坐标

比如现在有一个用3D摄像机渲染的物体(用A表示),想在他的看起来的位置上方一个NGUI对象(用B表示),则B的NGUI坐标为

Vector3 screenPos = Camera.main.WorldToScreenPoint(A.transform.position);
Vector3 nguiPos= NGUICamera.ScreenToWorldPoint(screenPos);


2D坐标->2D坐标

比如现在需要在屏幕上随意点一个坐标,让某个NGUI对象(用B表示)移动到指的那个点,其中B的父节点为NGUI对象A,A的坐标为Vector.zero,则B的NGUI坐标为:

Vector3 nguiPos = NGUICamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePositionb,y,0));
B.transform.localPosition = A.transform.InverseTransformPoint(nguiPos);




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: