public static void BuildPlayer()
        {
            var outputPath = UnityEditor.EditorUtility.SaveFolderPanel("Choose Location of the Built Game", "", "");

            if (outputPath.Length == 0)
            {
                return;
            }
            string[] levels = GetLevelsFromBuildSettings();
            if (levels.Length == 0)
            {
                Debug.Log("Nothing to build.");
                return;
            }
            string targetName = GetBuildTargetName(EditorUserBuildSettings.activeBuildTarget);

            if (targetName == null)
            {
                return;
            }
            AssetBundleBuilder.BuildAssetBundles();
            WriteServerURL();
            BuildOptions option = EditorUserBuildSettings.development ? BuildOptions.Development : BuildOptions.None;

            BuildPipeline.BuildPlayer(levels, outputPath + targetName, EditorUserBuildSettings.activeBuildTarget, option);
        }
        public static void BuildStandalonePlayer()
        {
            var outputPath = UnityEditor.EditorUtility.SaveFolderPanel("Choose Location of the Built Game", "", "");

            if (outputPath.Length == 0)
            {
                return;
            }

            string[] levels = GetLevelsFromBuildSettings();
            if (levels.Length == 0)
            {
                Debug.Log("Nothing to build.");
                return;
            }
            string targetName = GetBuildTargetName(EditorUserBuildSettings.activeBuildTarget);

            if (targetName == null)
            {
                return;
            }

            // Build and copy AssetBundles.
            AssetBundleBuilder.BuildAssetBundles();
            AssetBundleBuilder.BuildBundleScenes();
            AssetBundleBuilder.CopyAssetBundlesTo(Path.Combine(Application.streamingAssetsPath, Utility.AssetBundlesOutputPath));
            AssetDatabase.Refresh();

            BuildOptions option = EditorUserBuildSettings.development ? BuildOptions.Development : BuildOptions.None;

            MoveResourcesToR();
            BuildPipeline.BuildPlayer(levels, outputPath + targetName, EditorUserBuildSettings.activeBuildTarget, option);
            MoveRToResources();
        }
 public static void BuildBundleScenes()
 {
     if (ResContext.OptionsData == null)
     {
         return;
     }
     string[] levels = ResContext.OptionsData.BundleScenes.ToArray();
     if (levels.Length == 0)
     {
         Debug.Log("Nothing to build.");
         return;
     }
     for (int i = 0; i < levels.Length; i++)
     {
         string levelName = levels[i];
         if (string.IsNullOrEmpty(levelName))
         {
             continue;
         }
         string[] array      = new string[] { levelName };
         string   outputPath = Utility.BundleSceneOutputPath;
         if (Directory.Exists(outputPath) == false)
         {
             Directory.CreateDirectory(outputPath);
         }
         outputPath += Utility.GetFileNameWithoutExtFromFullPath(levelName);
         Debug.Log("Building BundleScenes: " + outputPath);
         BuildPipeline.BuildPlayer(array, outputPath, EditorUserBuildSettings.activeBuildTarget, BuildOptions.BuildAdditionalStreamedScenes);
     }
     AssetBundleBuilder.CopyAssetBundlesTo(Path.Combine(Application.streamingAssetsPath, Utility.AssetBundlesOutputPath));
     AssetDatabase.Refresh();
 }
        public static void BuildAssetBundles(bool deleteOld = false)
        {
            string outputPath = Path.Combine(Utility.AssetBundlesOutputPath, Utility.GetPlatformName());

            if (Directory.Exists(outputPath))
            {
                if (deleteOld)
                {
                    Directory.Delete(outputPath, true);
                    Directory.CreateDirectory(outputPath);
                }
            }
            else
            {
                Directory.CreateDirectory(outputPath);
            }
            Caching.CleanCache();
            BuildPipeline.BuildAssetBundles(outputPath, BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget);
            AssetBundleBuilder.CopyAssetBundlesTo(Path.Combine(Application.streamingAssetsPath, Utility.AssetBundlesOutputPath));
        }
Exemple #5
0
        private void OnGUI()
        {
            //if (mOptionsData == null)
            //{
            //    mOptionsData = LoadFile();
            //}

            #region options
            //if (GTEditorHelper.DrawHeader("Options"))
            //{
            //    GTEditorHelper.BeginContents(false);
            //    GUILayout.BeginHorizontal(GUILayout.Width(300));
            //    EditorGUILayout.LabelField("Current Mode", GUILayout.Width(100));
            //    mOptionsData.AssetBundleMode = (AssetBundleMode)EditorGUILayout.EnumPopup(mOptionsData.AssetBundleMode, GUILayout.Width(180));
            //    GUILayout.EndHorizontal();

            //    GTEditorHelper.EndContents();

            //    //try
            //    //{
            //    //    EditorUtility.SetDirty(mOptionsData);
            //    //}
            //    //catch { }
            //}
            #endregion

            #region build operation
            GUILayout.Space(3.0f);

            if (EditorUtility.DrawHeader("Builder"))
            {
                EditorUtility.BeginContents(false);
                if (GUILayout.Button("Build Scenes", GUILayout.Width(295)))
                {
                    AssetBundleBuilder.BuildBundleScenes();
                }
                if (GUILayout.Button("Build AssetBundles", GUILayout.Width(295)))
                {
                    AssetBundleBuilder.BuildAssetBundles();
                }
                if (GUILayout.Button("Build Standalone Player", GUILayout.Width(295)))
                {
                    AssetBundleBuilder.BuildStandalonePlayer();
                }
                EditorUtility.EndContents();
            }
            #endregion


            #region ease mode
            GUILayout.Space(3.0f);
            if (EditorUtility.DrawHeader("Ease"))
            {
                EditorUtility.BeginContents(false);
                if (GUILayout.Button("Move Resources To R", GUILayout.Width(295)))
                {
                    AssetBundleBuilder.MoveResourcesToR();
                }
                if (GUILayout.Button("Move R TO Resources", GUILayout.Width(295)))
                {
                    AssetBundleBuilder.MoveRToResources();
                }
                EditorUtility.EndContents();
            }
            #endregion
        }