/// <summary> /// 分析当前场景的数据信息 /// </summary> void AnalyzeCurrentScene() { string root_name = ED_SceneManagement.EditorSceneManager.GetActiveScene().name; EN_SceneManagement.Scene scene = ED_SceneManagement.EditorSceneManager.GetActiveScene(); GameObject[] gobjs = scene.GetRootGameObjects(); SceneGroupObjInfo scene_group_info = new SceneGroupObjInfo(scene.name); for (int j = 0; j < gobjs.Length; j++) { GameObject root_obj = gobjs[j]; Transform root_tran = root_obj.transform; GroupObjInfo group_obj_info = new GroupObjInfo(null, scene_group_info); for (int i = 0; i < root_tran.childCount; i++) { Transform child = root_tran.GetChild(i); if (child.gameObject.activeSelf) { AnalyzeGroup(group_obj_info, child); } } scene_group_info.Add_Group_Info(group_obj_info); } scene_group_obj_info = scene_group_info; }
public void Add_Group_Info(GroupObjInfo groupinfo) { group_obj_list.Add(groupinfo); tris_all += groupinfo.tris_all; verts_all += groupinfo.verts_all; mats_all = mat_all_list.Count; texs_all = tex_all_list.Count; meshs_all = mesh_all_list.Count; }
/// <summary> /// 递归分析组数据 /// </summary> /// <param name="group_info"></param> /// <param name="group_tran"></param> void AnalyzeGroup(GroupObjInfo group_info, Transform group_tran) { ObjectInfo obj_info = ObjectInfo.Create_Analyze(group_tran.gameObject); if (obj_info != null) { group_info.Add_Child_Info(obj_info); } if (group_tran.childCount > 0) { for (int i = 0; i < group_tran.childCount; i++) { AnalyzeGroup(group_info, group_tran.GetChild(i)); } } }