服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - 关于Unity中RectTransform与transform的区别

关于Unity中RectTransform与transform的区别

2022-12-21 14:24多见多闻 C#

这篇文章主要介绍了Unity中RectTransform与transform的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform

3D面板上显示的是位置坐标组件Transform,2D面板上显示的是位置坐标组件RectTransform

RectTransform是Transform的子类

可以这样强制转换,反过来则不行

?
1
gameObject.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(x,y,z);

”锚点“在”父物体“中的位置和样式,取值范围为0(父物体左下) - 1(父物体右上)。
当值的最大和最小不相同的时候表示一个区间,这时锚点会散开,锚点的一边在最小值上,锚点的一边在最大值上,都一样的时候就会如上图在一个点上
特性: 决定当父物体改变的时候子物体的位置和 大小

RectTransform是继承transform的,它是针对unity中ui的,具体在表现上可以这样看待,凡是在在canvas组件下或者具有canvas组件的2d对象,他都recttransform组件,那些在3d空间下没有不受canvas控制的对象都是transfrom组件。
关于recttransform的坐标设置,我们在设置ui对象的坐标的时候设置的都是recttransform的坐标,他是相对于自身锚点的,和父对象的中心点没有关系应该这样设置。

RectTransform组件还有一个anchoredPosition字段,它是忽略z坐标的,一般使用anchoredPosition3D 进行设置
我们通常也会这样设置ui的坐标

?
1
gameObject.transform.localPosition = new Vector3(x,y,z)

但其实这样是不准确的,它的位置是相对于父节点的中心点的,只有在特殊条件下才会正确,就是在父节点的中心点和子节点的锚点是重合的情况下才是正确的。

关于Unity中RectTransform与transform的区别

可以看到属性面板中anchors的min和max相等的时候,也就是锚点是一个点的时候属性面板中设置坐标是Posx posy, posz。如果锚点不是重合的情况下

关于Unity中RectTransform与transform的区别

此时,他的属性面板是这样的

关于Unity中RectTransform与transform的区别

变成了left,top,posZ,right,bottom
分别代表距离左上右下和z轴的距离。

关于Unity中RectTransform与transform的区别

是用来计算坐标的,即表示,自己点的哪个位置相对锚点的坐标
总结:

?
1
gameobject.transform.localposition =

这种方式是子节点的中心点piovt相对于父节点的中心点poivt的对标

?
1
Vector3 vector3 = gameObject.GetComponent<RectTransform>().anchoredPosition3D=

这钟是子节点的中心点相对自身的锚点的坐标和父节点没有关系

到此这篇关于Unity中RectTransform与transform的区别的文章就介绍到这了,更多相关Unity RectTransform与transform 区别内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/guangzhiruijie/p/15835916.html

延伸 · 阅读

精彩推荐
  • C#C#中的Lazy如何使用详解

    C#中的Lazy如何使用详解

    这篇文章主要给大家介绍了C#中Lazy如何使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    码农读书10832022-10-24
  • C#Unity shader实现消融效果

    Unity shader实现消融效果

    这篇文章主要为大家详细介绍了Unity shader实现消融效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    贪玩的孩纸时代11552022-07-08
  • C#C#毕业设计之Winform零压健身房管理系统

    C#毕业设计之Winform零压健身房管理系统

    本文介绍了个人的《零压健身房管理系统(扁平化)》的基本流程和功能点的介绍,虚心接受各位的意见,欢迎在提出宝贵的意见,大家一起探讨学习...

    意愿三七4532022-12-05
  • C#C#中abstract的用法详解

    C#中abstract的用法详解

    abstract可以用来修饰类,方法,属性,索引器和时间,这里不包括字段. 使用abstrac修饰的类,该类只能作为其他类的基类,不能实例化,而且abstract修饰的成员在派生...

    Q3012263910962021-12-15
  • C#C#中闭包概念讲解

    C#中闭包概念讲解

    这篇文章主要介绍了C#中闭包概念讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    黑洞视界11392022-11-24
  • C#C#实现任务栏通知窗口

    C#实现任务栏通知窗口

    作为程序员在享受的同时我们也不禁要问:这到底是怎么实现的呢?本文就利用Visual Studio .Net C# 2005以及.Net框架绘图技术来实现这种任务栏通知窗口。...

    C#教程网10962021-10-29
  • C#C#贪吃蛇游戏实现分析

    C#贪吃蛇游戏实现分析

    这篇文章主要为大家分析了C#贪吃蛇游戏的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    冰封一夏10372022-01-06
  • C#C#实现ini文件读写操作

    C#实现ini文件读写操作

    这篇文章主要为大家详细介绍了C#实现ini文件的读写操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    壹号知识搬运工3952022-02-28