unity3d学习(八)UI组件之Transform

勇哥注:

本节主要解决下面两个问题:
这里的X,Y,Z是个什么单位呢?
父物体子物体的父子关系是靠什么来维系的呢?


Transform组件用来做位移、旋转、缩放。

image.png


(一)Transform的单位


在Unity中,一个对象的Transform组件的X方向数值代表的是在世界空间或本地空间中的位置或移动距离,

其单位通常是米(m)。

这并不是像素单位,而是Unity使用的三维空间中的标准度量单位。


具体来说,Transform组件的position属性表示对象在世界空间中的位置,它是一个Vector3类型的值,

包含x、y、z三个分量,分别对应三维空间中的三个轴。

当你修改Transform的X方向数值时,你实际上是在改变对象在世界空间中沿X轴的位置。


此外,Unity还提供了本地空间(Local Space)和世界空间(World Space)之间的转换方法。

本地空间是相对于父对象的空间,而世界空间是全局的空间。

你可以使用Transform组件的localPosition属性来获取或设置对象在本地空间中的位置,

以及使用localToWorldMatrix和worldToLocalMatrix矩阵来进行本地空间和世界空间之间的转换。



(二)父子关系是靠什么维持的?


场景中对象的父子关系是由Transform组件来维持的。

这意味着你可以通过游戏物体2的Transform找到父对象的Transform,及至找到父级游戏对象。

image.png



//获取位置

Debug.Log(transform.position);

transform.localPosition;

//获取旋转

transform.rotation;

transform.localRotation;

transform.eulerAngles;

transform.localEuleAngles;

//获取缩放

transform.localScale;

//向量

transform.forward;

transform.right;

transform.up;


//可以通过Transform来查找层级中的对象。例如从子对象找到父对象,或者反过来。


//获取父物体

transfrom.Parent.gameObject

//子物体个数

transform.childCount;

//解除与子物体的父子关系

transform.DetachChildren();

//获取子物体

Transform trans= transform.find("Child");

方法2:transform.GetChild(0);

//判断一个物体是不是另外一个物体的子物体

bool res=trans.IsChildOf(transform);

//设置为父物体,如果这两个物体是毫无关系的,就可以指定为父子关系

trans.SetParent(transform);


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-10-25 09:24:54 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年3月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864