예제 #1
0
    public static void BuildSceneSpecify(PackagePlatform.PlatformType rBuildPlatform)
    {
        if (!Directory.Exists(PackagePlatform.sceneDirectoryPath))
        {
            Debug.Log("没有需要打包的场景文件");
            return;
        }

        PackagePlatform.platformCurrent = rBuildPlatform;

        string rOutPath = PackagePlatform.GetSceneBundlePath();

        if (Directory.Exists(rOutPath) == false)
        {
            Directory.CreateDirectory(rOutPath);
        }
        //修改PackagePlatform.Instance.sceneDirectoryPath
        var guids    = AssetDatabase.FindAssets("t:scene", new string[] { PackagePlatform.sceneDirectoryPath });
        var rInPaths = new string[guids.Length];
        var rCount   = 0;

        foreach (var guid in guids)
        {
            var rPath = rInPaths[rCount] = AssetDatabase.GUIDToAssetPath(guid);

            var rName = rPath.Substring(rPath.LastIndexOf('/') + 1, rPath.LastIndexOf('.') - rPath.LastIndexOf('/') - 1);

            var rfullPath = rOutPath + "/" + rName.ToLower() + "." + Global.BundleExtName;

            BuildPipeline.BuildPlayer(new string[] { rPath }, rfullPath, PackagePlatform.GetBuildTarget(), BuildOptions.BuildAdditionalStreamedScenes);

            Debug.Log("build scene:>" + rPath);
            rCount++;
        }
    }
예제 #2
0
    public static void BuildAssetbundlesSpecify(PackagePlatform.PlatformType rBuildPlatform)
    {
        PackagePlatform.platformCurrent = rBuildPlatform;

        List <AssetBundleBuild> abbList = GeneratorAssetbundleEntry();

        if (abbList == null)
        {
            Debug.Log("没有找到需要打包的资源");
            return;
        }

        string rPath = PackagePlatform.GetAssetBundlesPath();

        if (Directory.Exists(rPath) == false)
        {
            Directory.CreateDirectory(rPath);
        }

        BuildPipeline.BuildAssetBundles(rPath, abbList.ToArray(), BuildAssetBundleOptions.None, PackagePlatform.GetBuildTarget());
    }
예제 #3
0
    public static void BuildDefaultSpecify(PackagePlatform.PlatformType rBuildPlatform)
    {
        //打包DataTable
        if (Directory.Exists("Assets/RawResources/DataTable"))
        {
            Debug.Log("打包 DataTable");

            string outPath = PackagePlatform.GetPackagePath() + "DataTable";
            if (Directory.Exists(outPath))
            {
                Directory.Delete(outPath, true);
            }
            Directory.CreateDirectory(outPath);

            string   inPath = "Assets/RawResources/DataTable";
            string[] files  = Directory.GetFiles(inPath);

            float doneCount = 0f;
            for (int i = 0; i < files.Length; i++)
            {
                string file = files[i];
                if (file.Contains(".meta"))
                {
                    continue;
                }
                Debug.Log(file);

                string outfile = file.Replace("Assets/RawResources", PackagePlatform.GetPackagePath());

                if (File.Exists(outfile))
                {
                    File.Delete(outfile);
                }

                File.Copy(file, outfile, true);


                doneCount++;
                float p = (doneCount / (float)files.Length);
                EditorUtility.DisplayProgressBar("Package", "Package Default Resources", p);
            }
            EditorUtility.ClearProgressBar();
        }

        //打包Code
        if (Directory.Exists("Assets/RawResources/Code"))
        {
            Debug.Log("打包 Code");

            string outPath = PackagePlatform.GetPackagePath() + "Code";
            if (Directory.Exists(outPath))
            {
                Directory.Delete(outPath, true);
            }
            Directory.CreateDirectory(outPath);

            string   inPath = "Assets/RawResources/Code";
            string[] files  = Directory.GetFiles(inPath);

            float doneCount = 0f;
            for (int i = 0; i < files.Length; i++)
            {
                string file = files[i];
                if (file.Contains(".meta"))
                {
                    continue;
                }
                Debug.Log(file);

                string outfile = file.Replace("Assets/RawResources", PackagePlatform.GetPackagePath());

                if (File.Exists(outfile))
                {
                    File.Delete(outfile);
                }

                File.Copy(file, outfile, true);


                doneCount++;
                float p = (doneCount / (float)files.Length);
                EditorUtility.DisplayProgressBar("Package", "Package Default Resources", p);
            }
            EditorUtility.ClearProgressBar();
        }
    }