推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

在开发中会遇到将屏幕坐标转成世界坐标以及世界坐标转屏幕坐标的情况。

可以使用Camera.main.ScreenToWorldPoint和WorldToScreenPoint函数进行转换,如下图所示:

Input.mousePosition就是鼠标所在的位置的坐标

函数作用:

函数 作用
Camera.main.ScreenToWorldPoint 屏幕坐标转世界坐标
Camera.main.WorldToScreenPoint 世界坐标转屏幕坐标

二、实现

新建脚本PointSwitch.cs:

using UnityEngine;public class PointSwitch : MonoBehaviour
{void Update(){Debug.Log("Input.mousePosition:" + Input.mousePosition);Debug.Log("屏幕坐标转世界坐标:" + Camera.main.ScreenToWorldPoint(Input.mousePosition));Debug.Log("世界坐标转屏幕坐标:" + Camera.main.WorldToScreenPoint(transform.position));}
}

把脚本挂载在主摄像机上

运行程序:

就得到屏幕坐标映射在三维世界中的坐标了。

不过有一点是,转化之后z轴是-10
这个时候只要z轴+10就是屏幕映射到三维世界的正确坐标了

using UnityEngine;public class PointSwitch : MonoBehaviour
{void Update(){Debug.Log("Input.mousePosition:" + Input.mousePosition);Debug.Log("屏幕坐标转世界坐标:" + Camera.main.ScreenToWorldPoint(Input.mousePosition));Debug.Log("世界坐标转屏幕坐标:" + Camera.main.WorldToScreenPoint(transform.position));//屏幕坐标转世界坐标正确位置Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition) + new Vector3(0, 0, 10);Debug.Log(mousePos);}
}

【Unity3D日常开发】Unity3D中实现屏幕坐标和3维空间坐标的转化相关推荐

  1. 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  2. 【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  3. 【Unity3D日常开发】Unity3D打包PC窗口化打包设置

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  4. 【Unity3D日常开发】解析Txt文档,赋值给Text案例

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 有小伙伴跟我说,公司现在需要解析JSON,但是百度的解析JSON的 ...

  5. 【Unity3D日常开发】Unity中的资源加载与文件路径

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  6. 【Unity3d日常开发】Unity3D中实现热力图、风向图、温度图效果

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  7. 【Unity3D日常开发】Unity3D中实现手指任意拖动物体

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 手指拖动物体,也是交互中比较常见的一种操作,那么就让我们来看看怎么 ...

  8. 【Unity3D日常开发】Unity中Destroy()函数 和 DestroyImmediate()函数的区别

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  9. 【Unity3D日常开发】Unity3D中设置Image中的Color的值

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 首先给Button的Image组件的Color设置一个RGBA的值,值是12 ...

最新文章

  1. 图解Detour安装及简单使用实例(Win7+VC6)
  2. Intervals on the Ring 环状数轴区间-模数-构造-区间交并集
  3. 行业观察|智慧屏集中爆发,大屏市场能否迎来破局者?
  4. 圈钱跑路 发行自己的ERC20 Token
  5. 代码库之----图片预览
  6. mysql设计技巧_MySQL库表设计小技巧
  7. Visual basic 6读写ini文件
  8. 各种数据结构性能的比较
  9. 小米登录协议分析_小米回应小米11充电头兼容问题
  10. C和指针之动态内存分配之编程练习4
  11. reboot mysql fail_mysql 5.7.18,在系统重启后,为什么无法启动?
  12. java socket 丢字节_Java:socket消息丢失了
  13. Delphi实现点击按钮触发选择项, 进而实现不同的分支功能
  14. ACM 美素数 (没AC)
  15. 解决chrome浏览器adobe flash player不是最新版本亲测可用的方法
  16. mybatis源码:mybatis的sql解析
  17. 给已有表添加字段sql
  18. excel转置怎么操作_Excel拆分文本,想怎么拆就怎么拆,简单易学,一看就会
  19. 中国手机市场调查报告
  20. ubuntu 下,用户,文件夹,用户组 之理解

热门文章

  1. maptalk地图以及自定义标点的引入
  2. 2022-06-29 AndroidR 获取接近传感器Proximity Sensor的信号,休眠和唤醒。
  3. 编程基础——鱼龙混杂来两波
  4. 基于J2EE的B2C电子商务系统开发与实现
  5. 批量修改图片的后缀名以及删除相同的符号
  6. Python学生信息管理系统(增删查改、模糊查找、txt文件输出)# 谭子
  7. Matlab常用图像处理命令108例(二)
  8. Cent OS7的安装
  9. 计算机学院条幅内容,学院迎新活动标语横幅
  10. Day 15 正则表达式