Unity获取游戏对象&管理游戏组件
程序员文章站
2022-04-03 16:49:35
...
获取游戏对象
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>());
}
}
推荐阅读
-
Unity 游戏框架搭建 (十九) 简易对象池
-
Unity3d游戏开发中3D物体的点击获取和悬浮获取
-
《UnityAPI.GameObject游戏对象》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+isStatic+SendMessage+Find+立钻哥哥++OK++)
-
Unity如何判断游戏对象是否在屏幕内,检测玩家、NPC等是否在视野内
-
Unity 中判断某一个游戏对象是否在摄像机范围内
-
unity 关闭分辨率选择窗口,获取设备的分辨率和设置游戏的分辨率
-
Unity获取游戏对象&管理游戏组件
-
【Unity】获取游戏对象
-
【Unity3D日常开发】修改游戏对象的材质颜色
-
《UnityAPI.GameObject游戏对象》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+isStatic+SendMessage+Find+立钻哥哥++OK++)