unity的2d屏幕坐标转3d世界坐标
1.使用ScreenToWorldPoint将获取的屏幕位置直接转成世界坐标:
坑1:获取的屏幕坐标Input.mousePosition是一个2d坐标,z轴值为0,这个z值是相对于当前camera的,为零表示z轴与相机重合了,因此给ScreenToWorlfdPoint传值时,不能直接传Input.mousePosition,否则获取的世界坐标永远只有一个值;
坑2:为了解决坑1,便使传入的z轴值,那么传什么值呢,可以取当前相机的z轴值绝对值,大概意思就是距离相机的距离,生成点的位置最后会在一个平面(因为传入的z值固定了),比较适合一个平面内取点\n\n2.射线检测,取得屏幕坐标,发射射线,取得碰撞信息,比较准确,射线碰到那个有碰撞器的位置,就返回这个位置
Ray ray= mainCamera.ScreenPointToRay(screenPos); RaycastHit hit;
bool ishit=Physics.Raycast(ray,out hit);
if (ishit)
{
Vector3 spacePos = hit.point; print(\"screenPos:\" + screenPos); print(\"spacePos:\" + spacePos);
}
unity的2d屏幕坐标转3d世界坐标相关推荐
- Unity 相机 2D视角 与3D 视角 自由动态 切换
在游戏运行的时候,往往需要 在 正交Orthographic (无消失点投影) 与正交Orthographic (无消失点投影) 两个视角中来回转化. 以达到 不同的 2D 与 3D 视角. So! ...
- Unity推出2D工具:不再只是3D引擎
本文来自 GameLook ,转载自觉标明原文出处,以示尊重! 原文:http://www.gamelook.com.cn/2013/08/128864 GameLook报道/2013 Unity全球 ...
- D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵
D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵,有需要的朋友可以参考下. D3D中绘画3D模型基本上就是靠3个矩阵World, View, Projection来联合进行模型位置定位.视角定 ...
- Unity 2D图片的3D效果(1)——阴影
项目为方便编辑地图,使用的是Unity自带的Tilemap功能.因为使用的是俯视视角,拼好第一个地图后发现2D图片展现的效果太平了,地面和障碍物很难分辨.所以才有了"把2d图片展现出3d效果 ...
- [Unity官方文档翻译]2D or 3D Projects Unity中2D和3D项目的区别
2D or 3D Projects 2D或3D项目 Unity is equally suited to creating both 2D and 3D games. But what's the d ...
- unity3D如何实现2D sprite,3D物品和UI图片的拖拽效果
[Unity学习笔记] (一)如何实现2d sprite和3D物品的拖拽效果 1.调节camera >- Projection到Orthographic模式 Unity camera proje ...
- unity 点击UI显示3D爆炸特效
昨天改<降龙十八掌>项目反馈时经理要求我在项目中点击到手印时显示爆炸特效,昨天折腾了好一会没弄好就先弄其它项目反馈了,今天改完反馈后有时间来研究下这个功能. 昨天就简单的写了点代码进行测试 ...
- Unity简单2D游戏开发
Unity简单2D游戏开发 前言: 近日比较无聊,在b站找了一个up主,跟着他的教程来做游戏--开发一个简单的2D游戏 用 Tilemap 绘制场景 新建一个2D项目,在Unity Asset Sto ...
- Unity VR中实现播放3D电影
3D电影的原理 今天要在unity中借用steamVR观赏3D电影,之前没有留意过3D电影相关,完全没有思路,于是先百度了一下3D电影的原理. 很久之前看过几次3D电影,那时候比较新奇,当时中途摘下过 ...
最新文章
- AP计算机科学有几门,2017新增AP计算机科学考试科目
- c语言二元运算符大全,C语言运算符大全
- yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
- 在VNC远程桌面环境Xfce4中Tab键失效的解决方法
- java ee基础知识_Java EE:基础知识
- 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布
- C#获取当前堆栈的各调用方法列表
- Exception while invoking! org.apache.thrift.protocol.TProtocolException: Bad version in readMessageB
- 最新QQ邮箱滑块JS逆向教程
- CSS中大小单位px,em,rem 以及微信小程序的rpx
- lv官网编码查询_图文讲解,如何免费自主查询商标近似情况
- 医疗物联网的定义的业务场景
- vyos配置src-nat
- CSS 指层叠样式表 (Cascading Style Sheets)
- SpringBoot通过dubbo-spring-boot-starter整合Dubbo出现的问题
- Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)
- TIL —静态工厂方法
- 2.5D立体字体 html+css
- 2018年全国各省市区编号大全(1)
- 【微服务】SpringCloud微服务环境搭建
热门文章
- 双臂模式DPVS+RPM安装教程
- 微信开通检测工具如何检测效果最好
- 详解super()函数
- MFC如何添加bmp文件和ICO文件
- 从val_loss,train_loss,test_loss中产生的问题
- 使用EL表达式获取项目路径
- openlayers给要素加文字注记
- 中国民生银行天眼日志平台架构演进的平凡之路
- 计算机财务管理第五版第四章课后答案,计算机财务管理习题精简版
- 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组(GO,PHP)