static void CreateModelAssetbundle(UnityEngine.Object obj) { string mfname = obj.name + ModelExt + AssetbundleExt; //model info ModelInfoBundle minfo = ScriptableObject.CreateInstance <ModelInfoBundle>(); minfo.name = obj.name; FillModelInfo(obj as GameObject, minfo, mfname); BuildAssetBundle1((UnityEngine.Object)minfo, selPath + obj.name + ModelInfoExt + AssetbundleExt); ScriptableObject.DestroyImmediate(minfo); //Materials, Textures, animation ExportModelInfo(obj as GameObject); //model GameObject objClone = (GameObject)GameObject.Instantiate(obj); objClone.name = obj.name; ClearModelInfo(objClone); CheckFile(selPath + mfname); BuildAssetBundle(objClone, selPath + mfname); UnityEngine.Object.DestroyImmediate(objClone); }
static void FillModelInfo(GameObject obj, ModelInfoBundle minfo, string mname) { Debug.Log("Model '" + mname + "' informations:"); minfo.Main = new ModelInfo(); minfo.Main.Model = mname; FillModelInfos(obj, minfo.Main); List <ModelInfo> childs = new List <ModelInfo>(); foreach (Renderer rd in obj.GetComponentsInChildren(typeof(Renderer), true)) { if (rd.gameObject == obj) { continue; } Debug.Log(" Child model '" + rd.name + "' informations:"); ModelInfo mi1 = new ModelInfo(); mi1.Model = rd.name; childs.Add(mi1); FillModelInfos(rd.gameObject, mi1); } minfo.Childs = childs.ToArray(); }