Unity学习——坐标系

这篇具有很好参考价值的文章主要介绍了Unity学习——坐标系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  在Unity中所有物体都处于坐标系中,了解坐标系的基本内容十分有必要。这篇文章就简单介绍一下Unity中关于坐标系的相关内容
  Unity中共包含四类坐标系:
    1)世界坐标系(全局坐标系)
    2)本地坐标系(局部坐标系)
    3)屏幕坐标系
    4)视口坐标系

1.世界坐标系

  Unity中世界坐标系是左手坐标系,也即是上Y,右X,前Z
  四个坐标系中只有世界坐标系是唯一不变的,可以描述其他坐标系,但其他坐标系不能描述世界坐标系
  在写代码时,似乎用transform.position得到的就是世界坐标系。而且在Unity中物体在初始创建时都在(0,0,0)的位置,这个位置也是代表世界坐标系

2.本地坐标系

  世界坐标系是全局多物体的,本地坐标系是独属一个对象的。在Unity中点击物体后显示的是本地坐标系。
  Unity中的物体是可以存在父子关系的,其中父坐标系被用来描述父子关系的坐标系,一个子节点的父坐标系是该节点父节点的本地坐标系。同时父物体和子物体保持相对静止,移动父物体子物体也会移动
  在代码中,transform.localposition得到物体在父物体的本地坐标系的位置,如果没有父物体则得到世界坐标系坐标(即使没有父节点,也要明确本地坐标系≠世界坐标系,它们只是数值上相同)
  Unity图形化在Inspector视图上显示的是local position

3.屏幕坐标系

  屏幕上的二维坐标系(sence视图),左下角为原点(0,0),右上角为(Screen.width, Screen.height)水平方向为X轴,垂直方向为Y轴。利用屏幕坐标系可以做一些鼠标触控的检测,Input.MousePosition。三个坐标系里面只有屏幕坐标系是二维的,其余都是三维的。

4.视口坐标系

  解释下视口的概念:摄像机前方的长方形框,视口坐标与屏幕坐标布局一致——左下角为原点(0,0),右上角为(Screen.width, Screen.height)水平方向为X轴,垂直方向为Y轴。因为视口坐标系依托于摄像机,所以谈论视口坐标系都是基于摄像机存在的前提下。
  视口坐标系有Z轴,Z轴坐标的值为摄像机Z轴在世界坐标系的负值
  视口坐标系是将Game视图屏幕坐标系的单位化,大小为1x1。多个摄像机的场景切换实际就是视口坐标系的切换。可以在摄像机属性Viewport Rect中修改参数

  Unity库中提供了一些坐标系之间的转换函数,主要封装在Transform类和Camera类中:

世界坐标系和本地坐标系转换函数:
Transform.TransformPoint(Vector3 position) // 将坐标点从本地坐标系变换到世界坐标系
Transform.InverseTransformPoint(Vector3 position) // 将坐标点从世界坐标系变换到本地坐标系
Transform.TransformDirection(Vector3 direction) // 将方向从本地坐标系变换到世界坐标系
Transform.InverseTransformDirection(Vector3 direction) // 将方向从世界坐标系变换到本地坐标系
Transform.TransformVector(Vector3 vector) // 将一个向量从本地坐标系变换到世界坐标系
Transform.InverseTransformVector(Vector3 vector) // 将一个向量从世界坐标系变换到本地坐标系

调整指向的函数(可以推动前进):
Transform.forward(); // z轴
Transform.right(); // x轴
Transform.up(); // y轴

屏幕坐标系和世界坐标系转换函数:
Camera.ScreenToWorldPoint(Vector3 position); // 屏幕坐标系转换为世界坐标系
Camera.WorldToScreenPoint(Vector3 postion); // 世界坐标系转换为屏幕坐标系

屏幕坐标系和视口坐标系转换函数
Camera.ScreenToViewportPoint(Vector3 position); // 屏幕坐标系转换成视口坐标系
Camera.ViewportToScreenPoint(Vector3 position); // 视口坐标系转换成屏幕坐标系

世界坐标系和视口坐标系转换函数
Camera.WorldToViewportPoint(Vector3 position); // 世界坐标系转换成视口坐标系
Camera.ViewportToWorldPoint(Vector3 position); // 视口坐标系转换成世界坐标系

因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!文章来源地址https://www.toymoban.com/news/detail-428549.html

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

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

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

相关文章

  • Unity坐标系转换

    坐标系的转换 世界坐标系和本地坐标系的相互转换函数如下。 ● Transform.TransformPoint(Vector3position):将一个坐标点从本地坐标系转换到世界坐标系。 ● Transform.InverseTransformPoint(Vector3position):将一个坐标点从世界坐标系转换到本地坐标系。 ● Transform.TransformDirection(Vec

    2024年02月07日
    浏览(44)
  • 【Unity基础概念--坐标系】

    对于我这个Unity初学者来说,在学习过一段时间的Unity相关知识后,对于Unity中坐标系的概念不是很明确清楚,是时候做一下坐标系相关知识的总结了。 世界坐标是按照笛卡尔坐标系定义出来的绝对坐标系,下面的各种坐标系都建立在世界坐标的基础上。我们知道二维平面内任

    2024年01月16日
    浏览(31)
  • unity | 各种坐标系通俗讲解

    一、三维坐标 三维坐标:x,y,z都有数值 unity里面只有一个三维坐标,就是世界坐标 ,unity里面相当于一个小的世界,在这里面物体的坐标叫做世界坐标。 但是每个物体都有两个世界坐标,一个是真的世界坐标,一个是相对于父物体的世界坐标,代码如下 也就是只要是这两个

    2024年02月01日
    浏览(26)
  • Unity入门日记——父子坐标系

    Unity中设置父子关系后,子对象坐标转化为相对坐标;   设图中cube为父对象,sphere为子对象,未设置父子关系时,相对于世界坐标系的各自坐标如下:    将sphere设为cube子对象,坐标变化: 相对世界坐标系的子对象坐标与父对象坐标之差,乘以父对象坐标系归一化尺度;

    2024年02月11日
    浏览(36)
  • UE和Unity坐标系转换

    内容将会持续更新,有错误的地方欢迎指正,谢谢!   UE和Unity坐标系转换       TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取! 助力快速掌握 UE和Unity 坐标系转换 为初学者节省宝贵的学习时间,避免

    2024年01月19日
    浏览(26)
  • Unity开发3 坐标系及工具、快捷键操作

    左手坐标系:X→ Y↑ Z朝向屏幕内部 右手坐标系:X→ Y↑ Z朝向屏幕外部 Unity使用的是左手坐标系 世界坐标系就像经纬度一样,游戏对象的“位置”即相对于世界坐标系。 世界坐标系原点为(0,0,0)。 可将一游戏对象拖拽至另一游戏对象下生成父子关系。 生成父子关系后,

    2023年04月17日
    浏览(31)
  • unity和3d坐标系以及和ue的比较

    unity和ue都采用左手坐标系 在3d软件中,大多数软件都用红色代表x轴,绿色代表y轴,蓝色代表z轴。 不同的是 : 在unity中X轴代表右方,Y轴代表上方,Z轴代表前方; 在ue中X轴代表前方,Y轴代表右方,Z轴代表上方; 缩放 :根据自身缩放,不受坐标系影响, (移动和旋转则分

    2024年02月11日
    浏览(28)
  • 【CSS3】CSS3 3D 转换 ① ( CSS3 3D 转换简介 | 3D 物体与 2D 物体区别 | 3D 空间坐标系 | 常用的 3D 转换属性 | 3D 位移转换语法 | 代码示例 )

    3D 显示的物体 与 平面 2D 显示的物体有明显的不同 , 3D 显示效果有 近大远小 的 特点 ; 元素的 2D 的 转换效果 有 平移 , 旋转 , 缩放 效果 , 同样有对应的 3D 转换效果 ; 2D 平面坐标系 中 , 只有 x 轴 和 y 轴 ; 3D 空间坐标系 比 2D 平面坐标系 多了一个 Z 轴 ; x 轴 : 水平向右 ; 左侧是

    2024年02月12日
    浏览(32)
  • Unity坐标系、相互转换和相对自身的方位及角度。

    一、Unity的4种坐标系 1, World Space(世界坐标): 我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。 2, Screen Space(屏幕坐标): 以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机

    2024年02月10日
    浏览(27)
  • 【Unity】坐标系、Vector3基础和Transform位置

    在学习Vector3和Transform之前需要先了解一下Unity坐标系: 在Unity中有很多坐标系,诸如世界坐标系、局部坐标系、屏幕坐标系、视口坐标系等等,这些坐标系往往会给我带来很大的困扰,但又缺一不可。比如当你需要获取鼠标在世界坐标的位置时,你就需要明白什么是世界坐标

    2024年02月02日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包