首页 > 其他分享 >Unity中查找子组件GameObject或Component的操作汇总

Unity中查找子组件GameObject或Component的操作汇总

时间:2022-12-27 19:33:57浏览次数:51  
标签:游戏 GameObject 物体 Component 组件 Unity 查找 go


1.GameObject
属性:
tag常用于区分游戏中不同类型的对象(例如区分玩家和NPC)
name:游戏物体的名称
 
方法:
SetActive:使游戏物体处于活跃/不活跃状态
例:other.gameObject.SetActive(flase);
如果这行代码放到触发的代码中,就会起到一个让所有触发的物体都从世界上消失的作用
 
如何查找GameObject
①直接拖拽赋值----public一个gameObject类型变量,然后把其它游戏对象拖进去
②查找(比较耗时)

GameObject.Find----直接查找名字,需要保证名字是唯一的,返回找到的这个GameObject

GameObject.Find(Canvas/Text").GetComponent(UI.Text).text

GameObject.FindGameObjectsWithTag-----通过标签查找某个游戏物体,并以数组形式返回所有找到的结果

 GameObject go=GameObject.FindGameObjectWithTag("Player");

GameObject.FindWithTag------通过标签查找某个游戏物体,并返回找到的GameObject

 // GameObject go= GameObject.Find("Cube");
        //查找指定游戏对象
//   GameObject go= GameObject.FindWithTag("CubeTags");
        GameObject[] array= GameObject.FindGameObjectsWithTag("CubeTags");

 
2.Component的常用操作
 
①得到Transform组件,并进行操作分三步:

1)首先得到游戏物体
GameObject go;    //利用前面所说的方法得到
2)然后得到Transform组件
Transform tran=go.transform;   //利用“.”得到游戏物体go中的transform组件并定义一个Transform类型变量来接收
3)最后对组件进行操作
 
②得到Component的方式
 
1)找到一个符合条件的之后就返回找到的这个并且不再寻找

GetComponent//

gameObject.GetComponent<RotateSelf>()

GetComponentInChildren
GetComponentInParent
2)会找出所有的符合条件的,并做成一个数组返回
GetComponents
GetComponentsInChildren
GetComponentsInParent
 
注:可以在一个GamObject上调用,例如go.GetCom...也可以在一个脚本对象(组件对象)上直接调用transform.GetCom...

查找的范围都是这个GameObject上挂载的所有脚本(组件)

增加组件

  gameObject.AddComponent<RotateSelf> ();

标签:游戏,GameObject,物体,Component,组件,Unity,查找,go
From: https://blog.51cto.com/u_4176761/5973431

相关文章