将3D坐标转成2D坐标的方法。3D坐标在Unity中称作World Space,2D坐标称作Screen Space, 是以pixel为基准,以iPad 1024 x 768(4:3)的解析度为例子:
左上角是 (0,0)
右下角是(1024,768)
Unity3D教程:将3D坐标转成2D坐标的方法
功能制作:点击画面中的3D方块 然後在该方块的中心位置产生相对应的GUI
主要是应用此功能: camera.WorldToScreenPoint ();
将以下的JavaScript加在Camera物件下。
Unity3D教程:将3D坐标转成2D坐标的方法
1.Raycast点击设定:让你可以用滑鼠(PC)/手指(iPad, mobile devices)做点击测试。
2.用“tower”标签名称来区隔不同的3D物件。
3.用此功能取得所点击的3D物件的x,y,z坐标(world space) 然后再透过camera.WorldScreenPoint()转换成screen space的2D坐标。
4.然后我们利用所获得的2D坐标 将UI产生在设备萤幕的相对应位置上 *注意:y的坐标是要用设备萤幕的Height减去所获得的物件y坐标。
结果示范:
Unity3D教程:将3D坐标转成2D坐标的方法
点中间的方块 UI就产生在中间 点左上的方块 UI就产生在左上
应用:Tower Defense游戏中 点击画面中的物件 >然後卖出或升级