unity | 各种坐标系通俗讲解

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

一、三维坐标

三维坐标:x,y,z都有数值

unity里面只有一个三维坐标,就是世界坐标,unity里面相当于一个小的世界,在这里面物体的坐标叫做世界坐标。

但是每个物体都有两个世界坐标,一个是真的世界坐标,一个是相对于父物体的世界坐标,代码如下

transform.position
transform.localPosition

也就是只要是这两个方法,获取到的都是世界坐标。

二、二维坐标

二维坐标:x,y有数值,z也有数值,但是数值是0,所以相当于没有数值

unity里面有两个二维坐标,一个是屏幕坐标,一个是UI坐标

<一>、屏幕坐标

屏幕坐标不是你电脑屏幕的坐标,是你game界面的坐标

unity | 各种坐标系通俗讲解

 左下角是(0,0),右上角根据你分辨率来,比如这个是1920*1080,那么右上角就是(1920,1080)

 主要作用:当你玩游戏时,鼠标所在的位置就是屏幕坐标

        if (Input.GetMouseButtonDown(0)) {
            Debug.Log(Input.mousePosition); 
        }

Input.mousePosition得到的就是屏幕坐标,这也很好理解,毕竟鼠标在屏幕上。

1)世界坐标转屏幕坐标

详解:因为屏幕是相机照到的部分,所以相机不一样,相机的位置不一样,获得的屏幕坐标就不一样,因此,世界坐标转换屏幕坐标的时候,都和相机有关系,必须确定好相机才能转换,下面是用主相机转的坐标

Vector3 worldToScreen = Camera.main.WorldToScreenPoint(transform.position);

2)屏幕坐标转世界坐标

详解:现在我们都知道屏幕坐标是二维的,所以就算转了,我们也只能得到世界坐标的x和y,那么缺少一个z,所以,我们一般用相机的z来转坐标

Vector3 mousePos = Input.mousePosition;
Vector3 screenToWorld = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, -Camera.main.transform.position.z));

<二>、UI坐标

当你创建Canvas的时候,就出现了UI坐标,Canvas本身成了一张纸,上面的其他物体就在这个纸上,以这个纸为标准的坐标,叫做UI坐标。

白框是我建的Canvas的边框,左上角为(0,0),右下角为(它的宽,它的高)

unity | 各种坐标系通俗讲解

详解:界面就像你在unity世界里放了一张纸,它自己的坐标是独立的,一般用来鼠标和纸的互动,比如,你想在这个界面上画两条线,算一下这两个线之间的角度,算一下两个点之间的距离(像不像做数学题),因为大部分时候是鼠标和这个纸互动(其实我觉得直接用鼠标坐标和世界坐标也可以),所以转换方式如下:

物体的世界坐标→物体的屏幕坐标→物体的UI坐标(具体可以自行搜索)

没有直接得到某个物体的UI坐标的方法,都需要转换(很少用到它),如果你想使用(大可不必)

三、百分比坐标(我起的名字)

想象一个场景,你要把一个450*450的相机图像,放进一个900*900相机图像的右上角(如图)

unity | 各种坐标系通俗讲解

如果你把他们想象成父子物体,那么你需要计算这个红色的坐标,如果这个红色是白色的子物体,它的坐标位置应该是

unity | 各种坐标系通俗讲解

但是。。你不恶心❤吗?这明明就是把白色平均分成四份,我只要右上角那一份,如果我不想计算坐标怎么办。

解决方案:出现了新的坐标系

 unity | 各种坐标系通俗讲解

 这个坐标在相机上,是说相机和屏幕的关系

unity | 各种坐标系通俗讲解

它问:我相机的内容就这些(不包含黑色部分),你屏幕希望我从哪块开始显示?

unity | 各种坐标系通俗讲解

然后你想了想:那就从屏幕左边开始的25%(0.25)处开始显示,下面就从30%(0.3)开始显示吧,于是Game界面就变成了

unity | 各种坐标系通俗讲解

 总结:1就是100%的地方开始(最右边,或者最上边,也就是看不见),0就是最左边,或者最下面。它主要是用来调节界面位置关系的。

 四、作者的话

如果你看懂了,给我点个赞吧,这是我继续更新的动力~希望能用简单的话讲这些知识点。文章来源地址https://www.toymoban.com/news/detail-428154.html

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

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

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

相关文章

  • VTK OrientationMarker 方向 三维坐标系 相机坐标轴 自定义坐标轴

    本文 以 Python 语言开发 我们在做三维软件开发时,经常会用到相机坐标轴,来指示当前空间位置; 坐标轴效果: 相机方向坐标轴  Cube 正方体坐标轴  自定义坐标轴: Code: Axes CameraOrientationWidget OrientationMarkerWidget custom OrientationMarker

    2024年02月06日
    浏览(53)
  • 初识Unity——基本模型、场景操作、世界坐标系和局部坐标系

    目录 基本模型 创建基本模型 基本模型的复制  复杂模型 场景操作 聚焦 旋转 移动 场景视野  世界坐标系 基本介绍 原点 局部坐标系    创建基本模型之后,会在我们视野中心生成这个模型;当我们需要复制模型的时候,可以使用 “Duplicate”来进行复制,随后拖出来,不使

    2024年02月08日
    浏览(78)
  • WebGL+Three.js入门与实战——给画布换颜色、绘制一个点、三维坐标系

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,正逐渐往全干发展 📃 个人状态: 研发工程师,现效力于中国工业软件事业 🚀 人生格言: 积跬步至千里,积小流成江海 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js🍒

    2024年02月04日
    浏览(62)
  • Unity坐标系的转换—世界坐标转为UI坐标

    直接调用WorldToAnchorPos,传入对应的参数返回UGUI坐标

    2024年04月13日
    浏览(44)
  • Unity 坐标系

    常见的三维软件都采用笛卡尔坐标系,也就是常见的xyz轴坐标系。笛卡尔坐标系可以是左手坐标系也可以是右手坐标系,如下图所示  两种坐标系是镜像对称的。而Unity采用左手系,且xyz轴的默认方向与图中的左手系完全一样,分别对应右、上、前。 总结如下: x:右,(1,

    2024年02月07日
    浏览(48)
  • Unity学习——坐标系

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

    2024年02月01日
    浏览(41)
  • Unity坐标系转换

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

    2024年02月07日
    浏览(60)
  • 3Dslicer医学图像三维坐标系(xyz,RAS,IJK)差异,转换,旋转,平面角

    目录 World coordinate system世界坐标系xyz Anatomical coordinate system解剖学坐标系(LPS/RAS/RAI) Image coordinate system图像坐标系ijk Image transformation图像转换 三维坐标变换 A.旋转矩阵和旋转向量 B.欧拉角 C.四元数​编辑 计算平面角Angle Planes插件 参考链接 处理医学图像和应用程序时的问题之一

    2024年01月17日
    浏览(156)
  • 【Unity基础概念--坐标系】

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

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

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

    2024年02月11日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包