public void packSubMesh(SkelMeshParam param) { List <string> pathList = new List <string>(); pathList.Add(param.m_inPath); pathList.Add(param.m_name); string resPath = ExportUtil.getRelDataPath(ExportUtil.combine(pathList.ToArray())); GameObject go = AssetDatabase.LoadAssetAtPath(resPath, ExportUtil.convResStr2Type(m_resType)) as GameObject; GameObject subMeshGo = null; //GameObject insSubMeshGo = null; string subMeshName = ""; string outPrefabPath = ""; List <Object> objList = new List <Object>(); List <string> assetNamesList = new List <string>(); if (go != null) { subMeshGo = go.transform.Find(m_name).gameObject; if (subMeshGo != null) { //insSubMeshGo = GameObject.Instantiate(subMeshGo); //insSubMeshGo.transform.parent = null; //subMeshName = ExportUtil.getSubMeshName(param.m_name, m_name); subMeshName = ExportUtil.getSubMeshName(param.m_name, m_name); pathList.Clear(); if (string.IsNullOrEmpty(m_outPath)) { pathList.Add(SkinAnimSys.m_instance.m_xmlSubMeshRoot.m_outPath); } else { pathList.Add(m_outPath); } //pathList.Add(SkinAnimSys.m_instance.m_xmlSubMeshRoot.m_modelTypes.modelTypeDic[m_modelType].subPath); pathList.Add(subMeshName + ".prefab"); outPrefabPath = ExportUtil.getRelDataPath(ExportUtil.combine(pathList.ToArray())); assetNamesList.Add(outPrefabPath); //AssetDatabase.CreateAsset(insSubMeshGo, tmpPrefabPath); //PrefabUtility.CreatePrefab(tmpPrefabPath, insSubMeshGo); PrefabUtility.CreatePrefab(outPrefabPath, subMeshGo); // 现在不打包 AssetBundle ,后期才会打包成 ab // objList.Add(subMeshGo); // AssetBundleParam bundleParam = new AssetBundleParam(); //#if UNITY_5 // bundleParam.m_buildList = new AssetBundleBuild[1]; // bundleParam.m_buildList[0].assetBundleName = subMeshName; // bundleParam.m_buildList[0].assetBundleVariant = ExportUtil.UNITY3D; // bundleParam.m_buildList[0].assetNames = assetNamesList.ToArray(); // pathList.Clear(); // pathList.Add(param.m_outPath); // bundleParam.m_pathName = ExportUtil.getStreamingDataPath(ExportUtil.combine(pathList.ToArray())); //#elif UNITY_4_6 || UNITY_4_5 // bundleParam.m_assets = objList.ToArray(); // pathList.Clear(); // pathList.Add(param.m_outPath); // pathList.Add(subMeshName + ".unity3d"); // bundleParam.m_pathName = ExportUtil.getStreamingDataPath(ExportUtil.combine(pathList.ToArray())); //#endif // ExportUtil.BuildAssetBundle(bundleParam); // 释放资源 //UtilApi.DestroyImmediate(subMeshGo, false, false); //AssetDatabase.Refresh(); } } }