unity3d 獲取遊戲物件
阿新 • • 發佈:2018-12-07
可以得到四個目的:
1、獲取GameObject的所有子物體;
2、獲取場景所有的物體/指定型別的物體;
3、獲取專案中Resource目錄下的所有檔案/指定型別檔案;4、獲取專案中任意目錄下的所有檔案/指定型別檔案;
//查詢指定物件的子物體 GameObject go; //返回TransfTransform[] go.GetComponentsInChildren(typeof(Transform), true); go.transform.GetComponentsInChildren(); go.GetComponentsInChildren(); //遍歷場景中所有物體,獲取泛型T型別物體 object[] gameObjects; gameObjects = GameObject.FindSceneObjectsOfType(typeof(Transform)); foreach (Transform go in gameObjects) { if (go.GetComponent() != null) { //獲取成功,新增相關操作 } } //獲取Resource目錄下的檔案 Resources.LoadAll(path, typeof(MonoScript));//獲取path目錄xiade下的指令碼檔案 //獲取Project任意目錄下的檔案 string[] filePaths = Directory.GetFiles(Application.dataPath EventPath, "*.cs", SearchOption.AllDirectories); for (int i = 0; i < filePaths.Length; i ) { MonoScript fileItem; int lastIndex = filePaths[i].LastIndexOf("/"); string fileName = filePaths[i].Remove(0, lastIndex 1); fileItem = (MonoScript)AssetDatabase.LoadAssetAtPath("Assets" EventPath fileName, typeof(MonoScript)); if (fileItem != null && fileItem.GetClass().IsSubclassOf(typeof(BaseEvent)) && !events.Contains(fileItem)) { events.Add(fileItem); } }