unity3d在制作游戏的过程中,我们经常需要获得屏幕坐标与世界坐标,之间也经常需要做相互转换处理,像获得场景中物体的屏幕坐标,或者鼠标点击到物体位置的世界坐标。
方法/步骤
1
打开unity3d场景,在里面创建个立方体。
2
在脚本文件夹中创建一个“Zhuan_XYZ”脚本。
3
在update中通过WorldToScreenPoint获得物体(立方体)的屏幕坐标。Vector2 screen_xy=Camera.main.WorldToScreenPoint(transform.position);
4
使用RaycastHit获得鼠标点击物体位置的世界坐标。 Ray myRay=Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit myHit; if(Physics.Raycast(myRay,out myHit)) { if (myHit.collider.gameObject.tag=='aa') { print ('点击地形位置的世界坐标' + myHit.point); } }
5
在场景中选择“Terrain”地形,添加Tag“aa”。
6
设置Tag为“aa”。
7
把“Zhuan_XYZ”脚本拖放到立方体上面。
8
运行游戏后,在Console中打印出物体(立方体)的屏幕坐标、鼠标点击地形位置的世界坐标。
注意事项
脚本放在哪个物体的上面就是获得哪个物体的屏幕坐标。