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 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 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));
        }