将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游戏中 点击画面中的物件 >然後卖出或升级

将3D坐标转成2D坐标的方法相关推荐

  1. 西安80坐标转成经纬度坐标

    西安80坐标转成经纬度坐标 1:我的x坐标5045849.03:我的y坐标42594842.63 x坐标是7位数,y坐标是8位数 2:数据分析x7位,y加上带号8位,投影带号为42,所以是3度带投影( ...

  2. D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵

    D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵,有需要的朋友可以参考下. D3D中绘画3D模型基本上就是靠3个矩阵World, View, Projection来联合进行模型位置定位.视角定 ...

  3. 百度地图坐标查询(真实坐标)

    因为百度地图使用的是自己加密之后的坐标系,所以和网络上常用的WGS84坐标系有较大的偏差,不过百度地图API有现成的转换方法直接用就是,代码如下 1.添加坐标查询方法 theLocation(){if ...

  4. Solidworks二次开发-3D坐标转2D坐标

    一.3D坐标转2D坐标指在零件层面获得的点坐标,在进入草图编辑状态时,该点转换为在草图中的坐标值,只有XY轴: 注:如需将装配体层面的坐标转换为零件草图的坐标,需先将绝对坐标转换为零件的相对坐标,然后 ...

  5. three.js 3D坐标转化为2D屏幕坐标

    //创建一个3D坐标 var vector = new THREE.Vector3(); //获取模型 var obj = scene.getObjectByName(modelName); vect ...

  6. 3D空间中的点坐标转化为屏幕二维点坐标(一)

    每个人在进入计算机图形学的世界中,都有一个同样的困惑,三维世界中的三维坐标是如何被转换成屏幕上的二维坐标的,我如何在屏幕上找到一个点(二维点)对应三维世界中的点(三维点)呢? 要理解其中的过程,对学习 ...

  7. UGUI_UI子节点在Canvas的2D坐标

    首先我们要搞清楚 transform.postion 和 rectTransform.anchoredPosition  这两个坐标是完全不一样的.前面的是3D坐标,后面的是2D在Rect里的坐标,并 ...

  8. threejs-经纬度转换成xyz坐标的方法

    用threejs做3D应用时,很经常会接触到球状物体,比如说地球,要定义球上的一点,用经纬度是常用的办法.现在,我们要在北京这个地方标一个点,北京的坐标为--北纬39.9",东经116. 3 ...

  9. 用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影

    要实现3D空间中的点坐标转换为屏幕二维点坐标,需要进行透视变换和投影变换.以下是一些基本的思路和示例代码,可以用于实现主视图.侧视图.俯视图.正等轴投影. 1. 主视图投影 主视图投影是指以一个点作为 ...

最新文章

  1. c语言如何不产生僵尸进程,第三章 九析带你处理 zombie(defunct) 进程
  2. WINDOWS SERVER 2003从入门到精通之配置DHCP服务器(下)
  3. 高压细水雾灭火技术在数据中心机房中的消防应用
  4. BNUOJ 52325 Increasing or Decreasing 数位dp
  5. Jafka源码粗略解读之二--关于JMX
  6. java实现 XSS攻击防护
  7. 史上最优秀的转换工具类网站推荐[唯一保存历史转换记录]
  8. HALCON:Optical Flow(光流)
  9. AI学习笔记(十六)中文分词
  10. UNIX环境高级编程之第1章:UNIX基础知识
  11. 删除时存在依赖_npm依赖管理那些事
  12. Android 电视 文件目录,智能电视三款良心文件管理软件,操作攻略指南
  13. usbserver专业解决用友u8和t3USB加密狗虚拟化识别解决方案
  14. ORACLE表空间和表碎片分析及整理方法
  15. STM32(RFID)阶段三(触屏数字键盘)
  16. C++入门级编程题(基础)
  17. 什么是框架,框架和设计模式的关系,为什么要用框架?(转)
  18. 第一章 数据资产的定义
  19. Prege(图计算框架)
  20. bilibili管理课程笔记——中层管理者的四种领导角色

热门文章

  1. 腾讯云轻量8核16G服务器18M带宽CPU流量性能测评
  2. HTML5之10 __使用 Canvas API创建 热点图
  3. 2021-11-24 micropython esp32休眠假死 唤醒 rtc nvs btree数据保持
  4. Unity3D Android接入FCM推送
  5. python算法——字符串表达式的计算
  6. Linux服务器之间使用scp免密传输文件
  7. 服务器运维的日常工作,运维工作人员日常工作重点有哪些?
  8. 用ado把excel数据写入oracle,如何将excel表格数据导入到oracle数据库对应的表中?!oracle导出excel文件...
  9. java图书管理系统这个怎么改呢
  10. React心得之降龙十八掌:第三式-见龙在田( 组件生命周期详解)