多语言展示
当前在线:118今日阅读:61今日分享:18

unity3d屏幕与世界坐标相互转换

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中打印出物体(立方体)的屏幕坐标、鼠标点击地形位置的世界坐标。

注意事项

脚本放在哪个物体的上面就是获得哪个物体的屏幕坐标。

推荐信息