Exemplo n.º 1
0
        public static void UpdateBundleBuildList(FilterHandler filter)
        {
            if (filter == null)
            {
                m_useFilter = false;
                return;
            }
            m_useFilter = true;
            List <BundleImportData> dataList = m_dataControl.DataList;

            for (int l = 0; l < dataList.Count; ++l)
            {
                BundleImportData data = dataList[l];
                if (data == null)
                {
                    continue;
                }
                if (EditorUtility.DisplayCancelableProgressBar("Update Bundle List", data.RootPath, (l * 1.0f) / dataList.Count))
                {
                    Debug.LogWarning("CreateBundles Stop.");
                    break;
                }
                string     parentName = BundleDataManager.GetIndexBundleName(l);
                BundleData parent     = BundleDataManager.GetBundleData(parentName);
                for (int i = 0; parent != null && i < parent.children.Count; ++i)
                {
                    _ProcessUpdateBundleList(parent.children[i], data, filter);
                }
            }
            EditorUtility.ClearProgressBar();
            _ProcessDependBundleList();
        }
Exemplo n.º 2
0
        public static void BuildBundles()
        {
            BundleBuildHelper.PushAssetDependencies();

            BuildSingleBundle(BundleName.BN_SCRIPT, null);

            BundleData shader = BundleDataManager.GetBundleData(BundleName.BN_SHADER);

            for (int i = 0; shader != null && i < shader.children.Count; ++i)
            {
                BundleData  shaderChild = BundleDataManager.GetBundleData(shader.children[i]);
                BundleState childState  = BundleDataManager.GetBundleState(shader.children[i]);
                bool        result      = BundleBuildHelper.BuildShaderBundle(shaderChild, childState);
                if (!result)
                {
                    Debug.LogErrorFormat("[BundleAdapter] BuildShaderBundle {0} Failed.", shader.children[i]);
                }
            }

            List <BundleImportData> dataList = m_dataControl.DataList;

            for (int i = 0; i < dataList.Count; ++i)
            {
                BundleImportData data       = dataList[i];
                string           parentName = BundleDataManager.GetIndexBundleName(i);
                BuildSingleBundle(parentName, data);
            }

            BundleBuildHelper.PopAssetDependencies();

            BundleExport.ExportBundleMainfestToOutput();

            AssetDatabase.SaveAssets();
        }
Exemplo n.º 3
0
        public static void BuildBundles()
        {
            //ModelDataControl dataControl = new ModelDataControl(null, null);
            //BuildHelper.SetDelegate(dataControl.FilterObject);

            BuildHelper.PushAssetDependencies();
            //BuildHelper.BuildShaderBundle();
            _BuildSingleBundle(BundleName.BN_SCRIPT, null);

            List <BundleImportData> dataList = m_dataControl.DataList;

            for (int i = 0; i < dataList.Count; ++i)
            {
                BundleImportData data       = dataList[i];
                string           parentName = BundleDataManager.GetIndexBundleName(i);
                _BuildSingleBundle(parentName, data);
            }
            BuildHelper.PopAssetDependencies();

            //BuildHelper.ExportBMDatasToOutput();

            AssetDatabase.SaveAssets();
        }
Exemplo n.º 4
0
        private static void _AddPathToBundleByPathConfig(BundleImportData data, string path)
        {
            if (data == null || string.IsNullOrEmpty(path) || BundleDataManager.CheckPathInBundle(path))
            {
                return;
            }

            string parentName = BundleDataManager.GetIndexBundleName(data.Index);

            if (data.Type == BundleType.Shader)
            {
                parentName = BundleName.BN_SHADER;
            }
            string bundleName = BundleDataManager.GetPathBundleName(path);

            if (!string.IsNullOrEmpty(bundleName))
            {
                BundleData bundleData = BundleDataManager.GetBundleData(bundleName);
                if (bundleData.parent == parentName)
                {
                    return;
                }
                else
                {
                    BundleDataManager.RemovePathFromBundle(path, bundleName);
                }
            }

            _AddToDict(bundleName, m_bundleDict);

            BundleData parent = BundleDataManager.GetBundleData(parentName);

            if (parent == null)
            {
                BundleDataManager.CreateNewBundle(parentName, "", BundleType.None, BundleLoadState.UnLoadOnUnloadAsset);
                parent = BundleDataManager.GetBundleData(parentName);
            }

            string name = "";

            for (int i = 0; i < parent.children.Count; ++i)
            {
                int        index = parent.children.Count - i - 1;
                BundleData child = BundleDataManager.GetBundleData(parent.children[index]);

                if (BundleDataManager.IsBundleFull(child, data.LimitCount, data.LimitKBSize * 1024))
                {
                    continue;
                }

                if (data.Publish && BundleDataManager.IsNameDuplicatedAsset(child, path))
                {
                    continue;
                }

                name = child.name;
                break;
            }

            if (string.IsNullOrEmpty(name))
            {
                name = BundleDataManager.GenBundleNameByType(data.Type);
                BundleDataManager.CreateNewBundle(name, parent.name, data.Type, data.LoadState);
            }

            long size = CalcPathFileSize(path, data.Type);

            BundleDataManager.AddPathToBundle(path, name, size);
            _AddToDict(name, m_bundleDict);
        }