Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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();
    }