Exemple #1
0
    public void BuildAssetBundle(bool clearOldBundle)
    {
        Debug.LogWarning("BuildAssetBundle-----------------------------------");

        //*****************读取以前列表文件信息********************
        string manifest = BundleTools.GetBuildBundlePath(isStaticAsset) + "/" + assetFileTool;

        localManifest = AssetFileTool.LoadFromFile(manifest);


        BundleTools.CreateBuildBundleDir(isStaticAsset);
        if (clearOldBundle)
        {
            BundleTools.ClearBuildBundleDir(isStaticAsset);
        }

        BuildTarget             platform = EditorUserBuildSettings.activeBuildTarget;
        BuildAssetBundleOptions babo     = BuildAssetBundleOptions.ChunkBasedCompression;

        System.DateTime dt         = System.DateTime.Now;
        string          targetPath = BundleTools.GetBuildBundlePath(isStaticAsset);

        BuildPipeline.BuildAssetBundles(targetPath, babo, platform);
        Debug.Log("Build bundle cost time: " + (DateTime.Now - dt).TotalSeconds + "s");

        AssetBundleNameSet.ClearAllBundleName();        //清除

        AssetDatabase.Refresh();
    }
Exemple #2
0
    public void AssetBundleName()
    {
        Debug.LogWarning("AssetBundleName------------------------------------");

        string[] buildAssetPath = new string[1];
        if (isStaticAsset)
        {
            if (buildEmptyStaticAssets)
            {
                buildAssetPath [0] = "Client/Resources/Empty/";
            }
            else
            {
                buildAssetPath [0] = "Client/Resources/";
            }
        }
        else
        {
            if (buildEmptyDynamicAssets)
            {
                buildAssetPath [0] = "Client/DynamicResources/Empty/";
            }
            else
            {
                buildAssetPath [0] = "Client/DynamicResources/";
            }
        }
        assetBundleNameSet = new AssetBundleNameSet();
        assetBundleNameSet.BuildName(buildAssetPath, isStaticAsset);

        AssetDatabase.RemoveUnusedAssetBundleNames();

        AssetDatabase.Refresh();
        Debug.LogWarning("Bundle命名完成!-----------------------------------");
    }
    public void BuildName(string[] buildAssetPath, bool isStaticAsset)
    {
        AssetBundleNameSet.ClearAllBundleName();        //清除


        System.DateTime dt = System.DateTime.Now;
        Debug.Log("clear time: " + (System.DateTime.Now - dt).TotalSeconds);

        bundleName.Clear();
        resNumber = 0;
        dependence.Clear();
        originRes.Clear();


        this.SetAssetBundleName(buildAssetPath); //Bundle命名
        this.SetSceneAssetBundleName();          //场景Bundle命名
        if (isStaticAsset)
        {
            this.SetDirAssetBundleName(Application.dataPath + "/Resources/Lua/", "lua");             //Lua的Bundle命名
        }
        else
        {
//			this.SetDirAssetBundleName (Application.dataPath + "/Client/DynamicResources/Empty/", "empty");
        }

        Debug.Log("<color=yellow>all asset number " + resNumber + "</color>");


        bundleName.Clear();
        resNumber = 0;
        dependence.Clear();
        originRes.Clear();

        AssetDatabase.RemoveUnusedAssetBundleNames();

        Debug.Log("set name done! time: " + (System.DateTime.Now - dt).TotalSeconds);
    }
Exemple #4
0
    void OnGUI()
    {
        GUILayout.Label("目标平台: " + BundleTools.GetTargetPlatform(), EditorStyles.boldLabel, GUILayout.Height(20));
        GUILayout.Label("AppVersion: " + VersionTool.packageVersion, EditorStyles.boldLabel, GUILayout.Height(20));
        GUILayout.Label("StaticResVersion: " + StaticResVersion, EditorStyles.boldLabel, GUILayout.Height(20));
        string rv  = EditorGUILayout.TextField(StaticResVersion.ToString(), GUILayout.Width(30));
        int    irv = -1;

        if (int.TryParse(rv, out irv))
        {
            StaticResVersion = irv;
        }

        GUILayout.Label("DynamicResVersion: " + DynamicResVersion, EditorStyles.boldLabel, GUILayout.Height(20));
        rv  = EditorGUILayout.TextField(DynamicResVersion.ToString(), GUILayout.Width(30));
        irv = -1;
        if (int.TryParse(rv, out irv))
        {
            DynamicResVersion = irv;
        }

        GUILayout.Label("当前Bundle数量: " + AssetDatabase.GetAllAssetBundleNames().Length, EditorStyles.boldLabel, GUILayout.Height(20));
        assetPath               = GUILayout.TextArea(assetPath);
        isStaticAsset           = GUILayout.Toggle(isStaticAsset, "静态资源(对应生成静态或动态资源的mainfest文件)");
        buildEmptyDynamicAssets = DynamicResVersion == 0;
        buildEmptyStaticAssets  = StaticResVersion == 0;
        #region 打包流程


        GUILayout.Space(10);
        if (GUILayout.Button("工具——清除Bundle命名"))
        {
            AssetBundleNameSet.ClearAllBundleName();            //清除
        }

        GUILayout.Space(10);
        if (GUILayout.Button("打包流程0=>copy lua文件"))
        {
            CopyLuaFiile();
        }

        GUILayout.Space(10);
        if (GUILayout.Button("打包流程①=>Bundle命名"))
        {
            AssetBundleName();
        }

        GUILayout.Space(10);
        if (GUILayout.Button("打包流程②=>生成assetbundle"))
        {
            BuildAssetBundle(true);
        }

        GUILayout.Space(10);
        if (GUILayout.Button("打包流程③=>生成资源列表文件"))
        {
            CreateManifest();
        }

        GUILayout.Space(10);

        if (GUILayout.Button("打包流程④=>拷贝资源列表到工程"))
        {
            CopyAssetmainifestListToProject();
        }

        GUILayout.Space(10);
        GUILayout.Space(10);
        GUILayout.Space(10);

        #endregion


        #region 一键生成资源包不COPY资源列表


        if (GUILayout.Button("一键生成资源包不COPY资源列表(主要用于在本地测试Static资源是否能正常下载使用)"))
        {
            if (isStaticAsset)
            {
                CopyLuaFiile();
            }
            AssetBundleName();
            BuildAssetBundle(true);
            CreateManifest();
            //CopyAssetmainifestListToProject();
        }

        #endregion

        #region 一键生成资源包


        if (GUILayout.Button("一键生成Bundle资源"))
        {
            if (isStaticAsset)
            {
                CopyLuaFiile();
            }
            AssetBundleName();
            BuildAssetBundle(true);
            CreateManifest();
            CopyAssetmainifestListToProject();
        }

        #endregion
    }