unity怎么用代码获得当前激活的子类

unity怎么用代码获得当前激活的子类,第1张

Unity是 实时3D互动内容创作和运营平台 。

包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。

Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。

也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!

Unity小知识点学习

获取某个游戏对象下的所有子物体

在Unity中有时候我们会有这样的需求,拿到某个对象下的所有子对象然后统一做一些事情

我们可以通过GetChild的方式拿到这个物体的子对象,但是挨个拿会很麻烦

所以这里说一个可以拿到所有子对象的方法:GetComponentsInChildren

用法示例:

Unity3D 灵巧小知识点 ☀️ | 获取某个游戏对象下的所有子物体_其他

将脚本挂在到场景中,并赋值某个游戏对象

public GameObject @object;

Transform[] transforms;

void Start()

{

//游戏对象下的子物体激活的没激活的都会被拿到,包括游戏对象本身

//transforms =@objectGetComponentsInChildren<Transform>(true);

//游戏对象下的子物体激活的会被拿到,包括游戏对象本身;没激活的不会被拿到

transforms = @object GetComponentsInChildren<Transform>(false);

//遍历

foreach (Transform t in transforms)

{

//打印拿到的子对象

DebugLog("t的值为:"+t);

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

打印结果如下:

Unity3D 灵巧小知识点 ☀️ | 获取某个游戏对象下的所有子物体_非激活_02

可以通过代码控制是否要拿到非激活的子对象,这样就可以通过一个方法拿到所有子对象了!

这里顺便说一下几个常用的方法

获取某个对象子物体数量的方法

a = @objecttransformchildCount;

DebugLog("子物体的数量为:" + a);

1

2

打印结果:

Unity3D 灵巧小知识点 ☀️ | 获取某个游戏对象下的所有子物体_非激活_03

获取当前对象的索引值(当前对象为第几个子类,从0开始)

int child = transformGetSiblingIndex();

1

Unity3D 灵巧小知识点 ☀️ | 获取某个游戏对象下的所有子物体_3d_04

1,如果只是要不定期取一下这个数值,调用scrollViewgetScrollY(),如果是横向的scrollView,换成X。

2,如果要随时使用这个值,例如正在scroll过程中,其他控件要随着卷动的位置变化,需要继承一下并且重载onScrollChanged(int, int, int, int),这样每个scroll动作,都会被调用,告知当前scroll的位置以及上一次的位置。如果是横向,那么参数1,3起作用,纵向为2,4

Unity3d中GameObject对象可以包括其他子GameObject,并且本身包括多个Component

1.GameObjectFind("myObject") or FindGameObjectByTag will search the scene for an object called myObject

2. transformFind("myObject") will only search the game objects children for an object called myObject

3.GetComponent用来获取组件。

Transform Find(String name)    Transform FindChild(String name)

查找名为name的(transformgameObject)直接子物体并返回该子物体的Transform属性。不能是孙子物体或更低辈分的子物体。

2可以在name中使用字符'\' 遍历整个路径。其中路径的根必须是transformgameObject的直接子物体,不能是孙子物体或更低辈分的子物体。

这样就可以访问到以transformgameObject为根的物体树,包括其子物体,孙子物体,曾孙物体。。。。

若Cube物体有一个直接子物体Cube1,Cube1有一个直接子物体Cube2,我们就可以在Cube的脚本中使用transformFind("Cube1/Cube2");

或transformFindChild("Cube1/Cube2");

这样就直接访问到了transformgameObject的孙子物体Cube2。

以上就是关于unity怎么用代码获得当前激活的子类全部的内容,包括:unity怎么用代码获得当前激活的子类、如何获取unity中scrollview中的项、unity3d 如何获取一个子对象,如何获得并更改在一个模型里面的子对象的属性的值。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9568345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存