unity的2d屏幕坐标转3d世界坐标

这篇具有很好参考价值的文章主要介绍了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);  

      }文章来源地址https://www.toymoban.com/news/detail-580905.html

到了这里,关于unity的2d屏幕坐标转3d世界坐标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包