【Unity3D日常开发】Unity3D中实现屏幕坐标和3维空间坐标的转化
推荐阅读
- 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维空间坐标的转化相关推荐
- 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D打包PC窗口化打包设置
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】解析Txt文档,赋值给Text案例
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 有小伙伴跟我说,公司现在需要解析JSON,但是百度的解析JSON的 ...
- 【Unity3D日常开发】Unity中的资源加载与文件路径
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3d日常开发】Unity3D中实现热力图、风向图、温度图效果
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D中实现手指任意拖动物体
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 手指拖动物体,也是交互中比较常见的一种操作,那么就让我们来看看怎么 ...
- 【Unity3D日常开发】Unity中Destroy()函数 和 DestroyImmediate()函数的区别
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D中设置Image中的Color的值
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 首先给Button的Image组件的Color设置一个RGBA的值,值是12 ...
最新文章
- 图解Detour安装及简单使用实例(Win7+VC6)
- Intervals on the Ring 环状数轴区间-模数-构造-区间交并集
- 行业观察|智慧屏集中爆发,大屏市场能否迎来破局者?
- 圈钱跑路 发行自己的ERC20 Token
- 代码库之----图片预览
- mysql设计技巧_MySQL库表设计小技巧
- Visual basic 6读写ini文件
- 各种数据结构性能的比较
- 小米登录协议分析_小米回应小米11充电头兼容问题
- C和指针之动态内存分配之编程练习4
- reboot mysql fail_mysql 5.7.18,在系统重启后,为什么无法启动?
- java socket 丢字节_Java:socket消息丢失了
- Delphi实现点击按钮触发选择项, 进而实现不同的分支功能
- ACM 美素数 (没AC)
- 解决chrome浏览器adobe flash player不是最新版本亲测可用的方法
- mybatis源码:mybatis的sql解析
- 给已有表添加字段sql
- excel转置怎么操作_Excel拆分文本,想怎么拆就怎么拆,简单易学,一看就会
- 中国手机市场调查报告
- ubuntu 下,用户,文件夹,用户组 之理解