public void parseXml()
        {
            string path = ExportUtil.getDataPath("Res/Config/Tool/ExportAssetBundleName.xml");
            AssetBundleNameXmlParse parse = new AssetBundleNameXmlParse();

            parse.parseXml(path, this);
        }
Exemple #2
0
        protected void exportSkinsFile_OneSubMeshOneFile()
        {
            foreach (Mesh mesh in m_meshList)
            {
                foreach (SubMesh subMesh in mesh.m_subMeshList)
                {
                    string xmlStr = "<?xml version='1.0' encoding='utf-8' ?>\n<Root>\n";
                    xmlStr += string.Format("    <Mesh name=\"{0}\" >\n", ExportUtil.getFileNameNoExt(mesh.skelMeshParam.m_name));

                    subMesh.exportSubMeshBoneFile(mesh.skelMeshParam, ref xmlStr);

                    xmlStr += "    </Mesh>\n";

                    xmlStr += "</Root>";

                    string xmlName = string.Format("{0}.xml", ExportUtil.getFileNameNoExt(subMesh.m_part));
                    //string xmlPath = string.Format("{0}/{1}/{2}", m_outPath, m_modelTypes.modelTypeDic[mesh.skelMeshParam.m_modelType].subPath, xmlName);
                    string xmlPath = string.Format("{0}/{1}", m_outPath, xmlName);
                    xmlPath = ExportUtil.getDataPath(xmlPath);

                    ExportUtil.deleteFile(xmlPath);
                    FileStream fileStream = new FileStream(xmlPath, FileMode.CreateNew);
                    byte[]     data       = new UTF8Encoding().GetBytes(xmlStr);
                    //开始写入
                    fileStream.Write(data, 0, data.Length);

                    //清空缓冲区、关闭流
                    fileStream.Flush();
                    fileStream.Close();
                    fileStream.Dispose();
                }
            }
        }
Exemple #3
0
        protected void packOneLevelPack()
        {
            string        resPath  = "";
            List <string> nameList = new List <string>();
            List <string> pathList = new List <string>();

            List <string> filesList = ExportUtil.GetAll(ExportUtil.getDataPath(m_packParam.m_inPath));
            string        ext       = "";
            string        nameNoExt = "";
            string        tmpStr    = "";
            StreamedSceneAssetBundleParam bundleParam = new StreamedSceneAssetBundleParam();

            foreach (string filePath in filesList)
            {
                ext       = ExportUtil.getFileExt(filePath);
                nameNoExt = ExportUtil.getFileNameNoExt(filePath);
                if (ExportUtil.isArrContainElem(ext, m_packParam.m_extArr))
                {
                    resPath = ExportUtil.convFullPath2AssetsPath(filePath);
                    nameList.Add(resPath);
                    bundleParam.m_levels = nameList.ToArray();
                    pathList.Clear();
                    pathList.Add(m_packParam.m_outPath);
                    tmpStr = string.Format("{0}{1}", nameNoExt, ExportUtil.DOTUNITY3D);
                    pathList.Add(tmpStr);
                    bundleParam.m_locationPath = ExportUtil.getStreamingDataPath(ExportUtil.combine(pathList.ToArray()));

                    ExportUtil.BuildStreamedSceneAssetBundle(bundleParam);
                }
            }
        }
Exemple #4
0
        public void parseSkinsXml()
        {
            SkinMeshCfgParse skelMeshCfgParse = new SkinMeshCfgParse();

            skelMeshCfgParse.parseXml(ExportUtil.getDataPath("Res/Config/Tool/ExportSkinsCfg.xml"), this);

            createSubDir();         // 创建出来所有的子目录,不用在执行中判断
        }
Exemple #5
0
 public AssetBundleNameDirData(string path, AssetBundleNameXmlPath xmlPath)
 {
     m_dirPath     = path;
     m_xmlPath     = xmlPath;
     m_fullDirPath = ExportUtil.getDataPath(m_dirPath);
     m_fullDirPath = UtilPath.normalPath(m_fullDirPath);
     m_filesList   = new List <AssetBundleNameFileData>();
 }
Exemple #6
0
        protected void packOneBundlePack()
        {
            string        resPath        = "";
            List <string> assetNamesList = new List <string>();
            List <Object> objList        = new List <Object>();

            UnityEngine.Object go;

            List <string> pathList  = new List <string>();
            List <string> filesList = ExportUtil.GetAll(ExportUtil.getDataPath(m_packParam.m_inPath));
            string        ext       = "";
            string        nameNoExt = "";

#if UNITY_4_6
            string tmpStr = "";
#endif
            AssetBundleParam bundleParam = new AssetBundleParam();

            foreach (string filePath in filesList)
            {
                objList.Clear();
                assetNamesList.Clear();
                ext       = ExportUtil.getFileExt(filePath);
                nameNoExt = ExportUtil.getFileNameNoExt(filePath);
                if (ExportUtil.isArrContainElem(ext, m_packParam.m_extArr))
                {
                    resPath = ExportUtil.convFullPath2AssetsPath(filePath);
                    assetNamesList.Add(resPath);
                    go = AssetDatabase.LoadAssetAtPath(resPath, ExportUtil.convResStr2Type(ExportUtil.convExt2ResStr(ext)));
                    if (go)
                    {
                        objList.Add(go);

#if UNITY_5
                        bundleParam.m_buildList = new AssetBundleBuild[1];
                        bundleParam.m_buildList[0].assetBundleName    = nameNoExt;
                        bundleParam.m_buildList[0].assetBundleVariant = ExportUtil.UNITY3D;
                        bundleParam.m_buildList[0].assetNames         = assetNamesList.ToArray();
                        pathList.Clear();
                        pathList.Add(m_packParam.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(m_packParam.m_outPath);
                        tmpStr = string.Format("{0}{1}", nameNoExt, ExportUtil.DOTUNITY3D);
                        pathList.Add(tmpStr);
                        bundleParam.m_pathName = ExportUtil.getStreamingDataPath(ExportUtil.combine(pathList.ToArray()));
#endif
                        ExportUtil.BuildAssetBundle(bundleParam);
                    }
                    else
                    {
                        LoggerTool.error(string.Format("AssetDatabase.LoadAssetAtPath 不能加载资源 {0}", filePath));
                    }
                }
            }
        }
Exemple #7
0
        public static void restoreResources()
        {
            string restorePath = ExportUtil.getDataPath("");
            string bakPath     = ExportUtil.getPkgWorkPath("");

            UtilPath.createDirectory(restorePath);
            UtilPath.recurseCopyDirectory(bakPath, restorePath);
            UtilPath.deleteDirectory(bakPath);
        }
        public static void restoreResources()
        {
            string restorePath = ExportUtil.getDataPath("Prefabs");
            string bakPath     = ExportUtil.getPkgWorkPath("Prefabs");

            ExportUtil.CreateDirectory(restorePath);
            ExportUtil.copyDirectory(bakPath, restorePath);
            ExportUtil.DeleteDirectory(bakPath);
        }
Exemple #9
0
        public void createDir(string parentPath)
        {
            string path = "";

            //path = ExportUtil.getDataPath(string.Format("{0}/{1}", parentPath, m_subPath));
            path = ExportUtil.getDataPath(m_subPath);
            if (!ExportUtil.bDirExist(path))
            {
                ExportUtil.RecurCreateDirectory(path);
            }
        }
Exemple #10
0
        public void createDir(string parentPath)
        {
            string path = "";

            //path = ExportUtil.getDataPath(string.Format("{0}/{1}", parentPath, m_subPath));
            path = ExportUtil.getDataPath(m_subPath);
            if (!UtilPath.existDirectory(path))
            {
                UtilPath.recurseCreateDirectory(path);
            }
        }
Exemple #11
0
        public void exportBoneList()
        {
            XmlDocument xmlDocSave = new XmlDocument();

            xmlDocSave.CreateXmlDeclaration("1.0", "utf-8", null);
            XmlElement root = xmlDocSave.CreateElement("Root");

            foreach (Mesh mesh in m_meshList)
            {
                mesh.exportMeshBone(xmlDocSave, root);
            }

            string xmlName = string.Format("{0}/{1}", m_outPath, "BoneList.xml");

            xmlName = ExportUtil.getDataPath(xmlName);
            xmlDocSave.Save(@xmlName);
        }
Exemple #12
0
        public void save2Files(string parentPath)
        {
            string path = "";

            //path = ExportUtil.getDataPath(string.Format("{0}/{1}/{2}.xml", parentPath, m_subPath, m_outFileName));
            path = ExportUtil.getDataPath(string.Format("{0}/{1}.xml", parentPath, m_outFileName));

            ExportUtil.deleteFile(path);
            FileStream fileStream = new FileStream(path, FileMode.CreateNew);

            byte[] data = new UTF8Encoding().GetBytes(m_content);
            //开始写入
            fileStream.Write(data, 0, data.Length);

            //清空缓冲区、关闭流
            fileStream.Flush();
            fileStream.Close();
            fileStream.Dispose();

            m_content = "";
        }
Exemple #13
0
        // 解析 Xml
        public void parseXml()
        {
            clear();

            string path = ExportUtil.getDataPath("Res/Config/Tool/ExportSkelAnimatorController.xml");

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(path);
            XmlNode rootNode = xmlDoc.SelectSingleNode("Root");

            XmlNodeList           controllerNodeList = rootNode.SelectNodes("Controller");
            XmlElement            controllerElem;
            XmlAnimatorController controller;

            foreach (XmlNode controllerNode in controllerNodeList)
            {
                controllerElem = (XmlElement)controllerNode;
                controller     = new XmlAnimatorController();
                //m_curXmlAnimatorController = controller;
                m_controllerList.Add(controller);
                controller.parseXml(controllerElem);
            }

            XmlNodeList pathNodeList = rootNode.SelectNodes("Path");
            XmlElement  pathElem     = null;
            XmlPath     xmlPath      = null;

            foreach (XmlNode pathNode in pathNodeList)
            {
                pathElem = (XmlElement)pathNode;
                xmlPath  = new XmlPath();
                m_xmlPathList.Add(xmlPath);
                xmlPath.parseXml(pathElem);
            }
        }
        public void parseXml()
        {
            ResCfgParse resCfgParse = new ResCfgParse();

            resCfgParse.parseXml(ExportUtil.getDataPath("Res/Config/Tool/ResPackCfg.xml"), m_packList);
        }
        public void parseResourceXml()
        {
            ResourceCfgParse resourceCfgParse = new ResourceCfgParse();

            resourceCfgParse.parseXml(ExportUtil.getDataPath("Res/Config/Tool/ResPackResourceCfg.xml"), m_pResourcesCfgPackData.m_resourceList);
        }
        protected void addMesh()
        {
            string fullPath = ExportUtil.getDataPath(m_inPath);

            UtilPath.traverseFilesInOneDir(fullPath, onFindOneFile);
        }
Exemple #17
0
        static public void exportTypt()
        {
            string _path;

            byte[] bytes = null;
            Dictionary <string, bool> namespaceDic = new Dictionary <string, bool>();
            string namespaceStr = "";

            // 打开写入的文件
            _path = ExportUtil.getDataPath("Editor/BindLua.cs");
            FileStream fileStream;

            if (File.Exists(@_path))
            {
                File.Delete(@_path);
            }

            fileStream = new FileStream(_path, FileMode.Create);

            // 遍历类型
            string bindTypeInfo = "";

            foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                foreach (Type _type in assembly.GetTypes())
                {
                    if (bNeedExportNS(_type.Namespace))
                    {
                        // 如果是模板类型,名字是 "DynamicBuffer`1",但是 Type.MemberType == MemberTypes.TypeInfo
                        // 如果是内部类,那么 Type.MemberType == MemberTypes.NestedType
                        // 如果是协程(Coroutine),例如 protected IEnumerator initAssetByCoroutine(),Type.MemberType == MemberTypes.NestedType
                        // 去掉模板类、内部类、协程、接口、抽象类
                        // 抽象类导致 ToLuaExport.cs 导出的 bind 文件编译不过
                        // 函数中有模板类, 导致 ToLuaExport.cs 宕机。 static public void newRectSplit(Transform trans, float unitWidth, float areaRadius, float fYDelta, int splitCnt, ref List<Vector3> posList)
                        if (!_type.Name.Contains("`1") &&
                            _type.MemberType == MemberTypes.TypeInfo &&
                            !_type.IsInterface &&
                            !_type.IsAbstract)
                        {
                            if (!bNeedExportClassName(_type.Name))
                            {
                                continue;
                            }

                            if (!namespaceDic.ContainsKey(_type.Namespace))
                            {
                                namespaceDic[_type.Namespace] = true;
                                namespaceStr += string.Format("using {0};\r\n", _type.Namespace);
                            }

                            bindTypeInfo += string.Format("         _GT(typeof({0})),\r\n", _type.Name);
                        }
                    }
                }
            }

            // 写入名字空间
            bytes = Encoding.UTF8.GetBytes(namespaceStr);
            fileStream.Write(bytes, 0, bytes.Length);

            // 首先写入文件前半部分
            _path = ExportUtil.getDataPath("Editor/ExportLuaBind/BindLuaCsOne.txt");
            bytes = File.ReadAllBytes(_path);
            fileStream.Write(bytes, 0, bytes.Length);

            // 写入文件类型
            bytes = Encoding.UTF8.GetBytes(bindTypeInfo);
            fileStream.Write(bytes, 0, bytes.Length);

            // 写入文件后半部分
            _path = ExportUtil.getDataPath("Editor/ExportLuaBind/BindLuaCsTwo.txt");
            bytes = File.ReadAllBytes(_path);
            fileStream.Write(bytes, 0, bytes.Length);

            fileStream.Close();
            fileStream.Dispose();
            fileStream = null;
        }