获取游戏对象
using UnityEngine;
public class UnityTest : MonoBehaviour
{
// 获取游戏对象
private void Start()
{
// 根据Scene完整路径获取游戏对象
GameObject g1 = GameObject.Find("Main Camera/GameObject");
// 根据相对路径获取某游戏对象下的子游戏对象
GameObject g2 = g1.transform.Find("GameObject/child").gameObject;
// 根据相对索引获取某游戏对象下的子游戏对象
GameObject g3 = g1.transform.GetChild(0).gameObject;
// 根据tag获取单个游戏对象
GameObject g4 = GameObject.FindGameObjectWithTag("mono");
// 根据tag获取多个游戏对象
foreach (var item in GameObject.FindGameObjectsWithTag("mono"))
{
}
}
}
管理游戏组件
using UnityEngine;
public class UnityTest : MonoBehaviour
{
// 管理游戏组件
private void Start()
{
GameObject go = new GameObject();
// 添加游戏组件
go.AddComponent<Camera>();
// 没有组件时添加组件
if( go.GetComponent<Camera>())
{
go.AddComponent<Camera>();
}
// 获取子对象中的组件(包括自身)
go.GetComponentInChildren<Camera>();
// 获取所有子对象中的组件(包括自身)
foreach (var item in go.GetComponentsInChildren<Camera>())
{
}
// 获取父对象中的组件(包括自身)
foreach (var item in go.GetComponentsInParent<Camera>())
{
}
// 获取游戏场景内单个组件
GameObject.FindObjectOfType<Camera>();
// 获取游戏场景内所有组件
foreach (var item in GameObject.FindObjectsOfType<Camera>())
{
}
// 删除组件
GameObject.Destroy(GetComponent<Camera>());
// 立即删除组件
GameObject.DestroyImmediate(GetComponent<Camera>());
}
}