unity | gameobject和transform的区别和关联通俗解释

目录

一、前言

二、gameobject(物体的灵魂)

三、transform(物体的社会关系)

四、两者互相转换


一、前言

应该只有刚开始学习的人才会在乎这个问题,在最开始学习的时候,我总是不知道该用哪一个,甚至我觉得,为什么要分成两个,一个就够了。

以下内容用到了上面链接中的表达方式,如果下面有看不懂的地方,可以去找找看。

unity | 核心类图讲解_菌菌巧乐兹的博客-CSDN博客

二、gameobject(物体的灵魂)

或者说,他是物体本身。

当我们在unity里面建立物体的时候就会直接存在,如果用哲学的词汇来描述,更像物质,只要出现了,就存在,下图都是物体。(如图1所示)

图1 gameObject

从代码的角度来看:我们有一些可以实现的方法,它可以执行的部分功能如下:

gameObject.name  //你的名字
gameObject.activeSelf //活着还是死了(激活or未激活)
gameObject.layer  //生活在哪(所在层级)
gameObject.tag    //它的标签

上述方法没有写完整,但如果你把它比作成人,可以看出,这都是和自己本身有关系的,也像你刚开始玩一个游戏的时候,需要决定的事情:名字,身份,标签。。。等等

我们再看看其他可以执行的常用的方法:

gameObject.SetActive  //设定它是否活着

gameObject.GetComponents  //去拿个组件
gameObject.GetComponentInChildren //去拿个孩子的组件
gameObject.GetComponentInParen   //去拿个爸爸的组件

方法还有很多,没有写完,但都是自己能决定的事情,不需要别人帮忙。

三、transform(物体的社会关系)

和gameobject一样,我们也从他可以从代码的角度去看,它常用的方法如下:

transform.position //它的地理位置
transform.rotation //它的角度
transform.parent //它的爸爸
transform.childCount //它孩子的数量

从这些方法你可以看出,这是在说社会关系,有点类似于家谱,或者家族,一定要把它放到社会上之后,才会存在位置,关系。

我们再看看其他可以执行的常用的方法:

transform.GetComponents  //去拿个组件
transform.GetComponentInChildren //去拿个孩子的组件
transform.GetComponentInParen   //去拿个爸爸的组件
transform.Rotate //旋转
transform.SetParent //设置它爸爸
transform.SetSiblingIndex //设置它是它家第几个孩子

依旧没有写完,我们可以和gameObject做一下对比,transform和gameObject有重合的地方。

例如:

transform.GetComponents  //去拿个组件

因为有些事情并不是只有你才能做,你家人(transform)也能帮你(gameObject)干很多事情,但是也有很多不能做的,例:它们没办法决定你是否活着(gameObject.SetActive)。

反之,你自己(gameObject)可以做很多事情,但是不能决定,你家(transform)里有几个孩子,你有几个亲戚。

所以,从代码重合的角度上讲,他们各自有完全独立的方法,又有重合的方法。(如图2所示)

图2 方法重合程度图

四、两者互相转换

transform.gameObject
gameObject.transform

这个也很好理解,我们可以通过你找到你周围的关系,也可以通过你周围的关系,找到你。

所以,在代码里,你可以通过转换来最终达成想要完成的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菌菌巧乐兹

希望能给大家写更多有用的文章~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值