예제 #1
0
        private void OnDrawOutputInformations()
        {
            m_showOutputInformations = EditorGUILayout.Foldout(m_showOutputInformations, "Output Informations");
            if (!m_showOutputInformations)
            {
                return;
            }

            var indent = EditorGUI.indentLevel;

            EditorGUI.indentLevel = 1;

            m_buildTarget = EditorUserBuildSettings.activeBuildTarget;
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Active Build Target");
            EditorGUILayout.LabelField(m_buildTarget.ToString());
            EditorGUILayout.EndHorizontal();

            m_outputPath = AssetBundleDef.GetDefaultOutputPath();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Output Path");
            EditorGUILayout.LabelField(m_outputPath);
            EditorGUILayout.EndHorizontal();

            EditorGUI.indentLevel = indent;

            EditorGUILayout.Space();
        }
예제 #2
0
        private static bool SwitchLoadModeToNetworkValidate()
        {
            var loadType = AssetBundleDef.GetAssetBundleLoadType();

            Menu.SetChecked(ASSETBUNDLE_EDITOR_LOAD_TYPE_NETWORK, loadType == AssetBundleLoadType.Network);
            return(loadType != AssetBundleLoadType.Network);
        }
예제 #3
0
        private static bool SwitchLoadModeToStreamingValidate()
        {
            var loadType = AssetBundleDef.GetAssetBundleLoadType();

            Menu.SetChecked(ASSETBUNDLE_EDITOR_LOAD_TYPE_STREAMING, loadType == AssetBundleLoadType.Streaming);
            return(loadType != AssetBundleLoadType.Streaming);
        }
예제 #4
0
        private static bool SwitchLoadModeToSimulateValidate()
        {
            var loadType = AssetBundleDef.GetAssetBundleLoadType();

            Menu.SetChecked(ASSETBUNDLE_EDITOR_LOAD_TYPE_SIMULATE, loadType == AssetBundleLoadType.Simulate);
            return(loadType != AssetBundleLoadType.Simulate);
        }
예제 #5
0
        private IEnumerator PreInitialize(string relativePath)
        {
            var platformName = AssetBundleDef.GetPlatformName();

            m_downloadingURL = string.Format("{0}/{1}/", relativePath, platformName);
            TEDDebug.LogFormat("[AssetBundleSystem] - The AssetBundle download url is {0}", m_downloadingURL);

            yield return(StartCoroutine(InitializeCatalog()));

            if (m_assetBundleCatalogs == null)
            {
                if (m_onInitializeFinish != null)
                {
                    m_onInitializeFinish(false);
                    m_onInitializeFinish = null;
                    yield break;
                }
            }

            var request = InitializeManifest(platformName);

            if (request != null)
            {
                yield return(StartCoroutine(request));
            }
        }
예제 #6
0
        public void Initialize(AssetBundleInitializeData initializeData)
        {
            m_maxDownloadRequest  = initializeData.MaxDownloadRequest;
            m_onInitializeFinish  = initializeData.OnInitializeFinish;
            m_assetBundleLoadType = initializeData.LoadType;

            TEDDebug.LogFormat("[AssetBundleSystem] - Initialize with load type '{0}'", m_assetBundleLoadType);

            if (m_assetBundleLoadType == AssetBundleLoadType.Streaming)
            {
                initializeData.DownloadURL = AssetBundleDef.GetDownloadStreamingAssetsPath();
            }

            if (m_assetBundleLoadType != AssetBundleLoadType.Simulate)
            {
                StartCoroutine(PreInitialize(initializeData.DownloadURL));
            }
            else
            {
                if (m_onInitializeFinish != null)
                {
                    m_onInitializeFinish(true);
                    m_onInitializeFinish = null;
                }
            }
        }
예제 #7
0
        public static void Build(AssetBundleBuildInfo buildInfo)
        {
            AssetBundleNameBuilder.Build();

            AssetDatabase.Refresh();
            AssetDatabase.RemoveUnusedAssetBundleNames();

            if (buildInfo.CleanFolders)
            {
                if (Directory.Exists(buildInfo.OutputPath))
                {
                    Directory.Delete(buildInfo.OutputPath, true);
                }
            }

            if (!Directory.Exists(buildInfo.OutputPath))
            {
                Directory.CreateDirectory(buildInfo.OutputPath);
            }

            if (buildInfo.SpecificAssetBundles == null || buildInfo.SpecificAssetBundles.Length == 0)
            {
                BuildPipeline.BuildAssetBundles(buildInfo.OutputPath, buildInfo.BuildOptions, buildInfo.Target);
            }
            else
            {
                BuildPipeline.BuildAssetBundles(buildInfo.OutputPath, buildInfo.SpecificAssetBundles, buildInfo.BuildOptions, buildInfo.Target);
            }

            AssetBundleCatalogBuilder.Build(buildInfo.OutputPath);

            if (buildInfo.CopyToStreamingAssets)
            {
                var streamingAssetsPath = Path.Combine(STREAMING_ASSETS_FOLDER_PATH, AssetBundleDef.ASSET_BUNDLE_OUTPUT_FOLDER);
                streamingAssetsPath = Path.Combine(streamingAssetsPath, AssetBundleDef.GetPlatformName());

                if (Directory.Exists(streamingAssetsPath))
                {
                    Directory.Delete(streamingAssetsPath, true);
                }

                DirectoryCopy(buildInfo.OutputPath, streamingAssetsPath);
            }

            AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);

            TEDDebug.Log("Build AssetBundles successfully.");
        }
예제 #8
0
        private AssetBundleLoadManifestRequest InitializeManifest(string path)
        {
            UnloadAssetBundles(new List <string> {
                AssetBundleDef.GetPlatformName()
            });

            TEDDebug.LogFormat("[AssetBundleSystem] - Start download AssetBundleManifest at frame {0}", Time.frameCount);

            DownloadAssetBundle(path, true);

            var request = new AssetBundleLoadManifestRequest(path, "AssetBundleManifest");

            m_inProgressRequests.Add(request);

            return(request);
        }
예제 #9
0
 private static void SwitchLoadModeToNetwork()
 {
     AssetBundleDef.SetAssetBundleLoadType(AssetBundleLoadType.Network);
 }
예제 #10
0
 private static void SwitchLoadModeToStreaming()
 {
     AssetBundleDef.SetAssetBundleLoadType(AssetBundleLoadType.Streaming);
 }
예제 #11
0
 private static void SwitchLoadModeToSimulate()
 {
     AssetBundleDef.SetAssetBundleLoadType(AssetBundleLoadType.Simulate);
 }