UnityEngine中的GameObject
在Unity中,游戏中的每一个物体都可以是看作一个游戏对象,UnityEngine将这些游戏对象封装成为GameObject类
GameObject构造
无参构造
public GameObject () //创建一个基础的游戏对象
有参构造
public GameObject (string name)//创建一个名称为name的游戏对象
//功能:创建一个游戏对象并为该对象添加组件
//name:创建对象的名称
//Components:需要添加的组件类型
public GameObject(string name , Type[] Components)
GameObject 属性
弃用的属性略过
属性 | 类型 | 含义 | 操作 |
---|---|---|---|
layer | int |
当前游戏物体所在的层 |
R/W |
activeSelf | bool |
物体自身是否被激活 | R |
activeInHierarchy | bool |
物体在场景中是否为激活状态 | R |
isStatic | bool |
表示物体是否为静态物体(Editor Only) |
R/W |
tag | string |
物体的标签 ,可以用来查找物体 |
R/W |
scene | Scene |
获取物体所在的场景 | R |
gameObject | GameObject |
获取当前对象的实例 | R |
transform | Transform |
获取物体身上的变换组件 | R |
GameObject 方法
静态方法
public static GameObject CreatePrimitive(PrimitiveType type)
使用基础物体创建一个一个游戏对象,包含对应的Mesh
和Collider
public static GameObject Find(string name)
查找场景中名称为name
的游戏对象,name可以是一个路径,搜索不到未激活的对象
public static GameObject[] FindGameObjectsWithTag(string tag)
查找场景中标签
是tag
的所有物体,未激活物体不会被搜索到
public static GameObject FindGameObjectWithTag(string tag)
查找场景中标签是tag的物体,搜索到多个物体,返回最后一个被创建的物体
public static GameObject FindWithTag(string tag)
同FindGameObjectWithTag
public T AddComponent<T>() where T : Component
添加一个组件到游戏物体上
public void BroadcastMessage(string methodName, [DefaultValue("null")] object parameter, [DefaultValue("SendMessageOptions.RequireReceiver")] SendMessageOptions options)
调用对象身上和子物体所有脚本中方法名为methodName的方法(公开、私有对会被调用)
,参数是parameter,SendMessageOption是否需要接收者,如果是,需要调用对向脚本中有对应函数,若没有会报错
public bool CompareTag(string tag)
比较自身Tag和参数tag是否相同
public T GetComponent<T>()
获取物体身上的T
组件
public T GetComponentInChildren<T>()
获取自身和子物体身上的T组件,深度优先
public T GetComponentInParent<T>()
获取自身或父物体身上的T组件,包含祖父组件
public T[] GetComponents<T>();
获取自检身上所有的T组件
public void SendMessage(string methodName, object value)
调用物体自身脚本中所有方法名为methodName的方法,参数为value
public void SendMessageUpwards(string methodName, object value)
调用自身以及父物体脚本中方法名为methodName的方法,参数为value
public void SetActive(bool value)
设置物体是否被激活