private void AndroidGUI()
    {
        showAndroidSettings = EditorGUILayout.Foldout(showAndroidSettings, "Android Settings");
        if (showAndroidSettings)
        {
            EditorGUILayout.BeginHorizontal();
            SelectableLabelField(packageNameLabel, PlayerSettings.bundleIdentifier);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();
            EditorGUILayout.HelpBox("Billing Service Selection", MessageType.None);

            if (!SoomSettings.GPlayBP && !SoomSettings.AmazonBP)
            {
                SoomSettings.GPlayBP = true;
            }

            SoomSettings.GPlayBP = EditorGUILayout.ToggleLeft(playLabel, SoomSettings.GPlayBP);

            if (SoomSettings.GPlayBP)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                EditorGUILayout.LabelField(publicKeyLabel, fieldWidth, fieldHeight);
                SoomSettings.AndroidPublicKey = EditorGUILayout.TextField(SoomSettings.AndroidPublicKey, fieldHeight);
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.Space();

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(emptyContent, spaceWidth, fieldHeight);
                SoomSettings.AndroidTestPurchases = EditorGUILayout.Toggle(testPurchasesLabel, SoomSettings.AndroidTestPurchases);
                EditorGUILayout.EndHorizontal();
            }

            if (SoomSettings.GPlayBP && !playUpdate)
            {
                playUpdate   = true;
                amazonUpdate = false;

                SoomSettings.AmazonBP = false;
                ManifestTools.GenerateManifest();
                SoomlaAndroidUtil.handlePlayBPJars(false);
                SoomlaAndroidUtil.handleAmazonBPJars(true);
            }


            SoomSettings.AmazonBP = EditorGUILayout.ToggleLeft(amazonLabel, SoomSettings.AmazonBP);

            if (SoomSettings.AmazonBP && !amazonUpdate)
            {
                playUpdate   = false;
                amazonUpdate = true;

                SoomSettings.GPlayBP = false;
                ManifestTools.GenerateManifest();
                SoomlaAndroidUtil.handlePlayBPJars(true);
                SoomlaAndroidUtil.handleAmazonBPJars(false);
            }



            if (!SoomlaAndroidUtil.IsSetupProperly())
            {
                var msg = "You have errors in your Android setup. More info in the SOOMLA docs.";
                switch (SoomlaAndroidUtil.SetupError)
                {
                case SoomlaAndroidUtil.ERROR_NO_SDK:
                    msg = "You need to install the Android SDK!  Set the location of Android SDK in: " + (Application.platform == RuntimePlatform.OSXEditor ? "Unity" : "Edit") + "->Preferences->External Tools";
                    break;

                case SoomlaAndroidUtil.ERROR_NO_KEYSTORE:
                    msg = "Your defined keystore doesn't exist! You'll need to create a debug keystore or point to your keystore in 'Publishing Settings' from 'File -> Build Settings -> Player Settings...'";
                    break;
                }

                EditorGUILayout.HelpBox(msg, MessageType.Error);
            }
        }
        EditorGUILayout.Space();
    }
Beispiel #2
0
 public void OnEnable()
 {
     // Generating AndroidManifest.xml
     ManifestTools.GenerateManifest();
 }
Beispiel #3
0
        /// <summary>
        /// 开始构建 AssetBundle
        /// </summary>
        /// <param name="target"></param>
        static void BuildAssetBundle(BuildTarget buildTarget, int compre_type, bool is_force_build, string[] build_asset_arr)
        {
            //生成资源的依赖关系
            AssetsDependenctGenerateEditor.UpdateAssetDependenct();

            //构建引用关系图形
            AssetDependenctTree.BuildAssetDependenctGraph();

            //更新资源打包后缀
            UpAssetExtension(buildTarget);

            //获取所有需要打包的资源数据引用
            var dic = AllNeedBuildAssetDependenct(build_asset_arr);

            //获取资源进行单独打包的列表
            var singles = BuildSinglePackage(dic);

            //获取目录资源打包
            var directory = BuildDirectoryPackage(dic);

            //获取资源进行除单独打包的列表
            var resources = BuildAllResourceEx(dic);

            //获取总共需要进行打包的资源数据
            var builds = ArrayTools.Concat(singles, directory, resources);

            //var exportDir = BuildUtils.CreateAssetBundleDir(buildTarget, out_path);//构建不同平台的子目录

            //var fullversion = BuildUtils.GetCurrentPackageVersion();

            //var bundleName = BuildUtils.GetAssetBundleName(buildTarget);

            //int major, minor, build;

            //VersionJson.GetResVersion(fullversion, out major, out minor, out build);

            //var version = build.ToString().PadLeft(VersionJson.VersionCount, '0');

            //var versionPath = BuildUtils.GenVersionPath(__versionPath, version);

            //AssetBundleManifest assetBundlemainfest;

            //if (build > 0)//小版本的情况
            //{
            //    Debug.Log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!build version" + version);

            //    //如果某一个版本的文件存在 就全部删除掉.
            //    if (Directory.Exists(versionPath))
            //    {
            //        Directory.Delete(versionPath, true);
            //    }

            //    //不强制打包 小幅度增加版本号,以上一个版本的数据比较变动
            //    assetBundlemainfest = BuildBundlesUnity5(exportDir, __compressType, __buildTarget, false, builds);

            //    if (assetBundlemainfest != null)
            //    {
            //        var staticManifest = BuildUtils.GetStaticAssetBundleManifest(lastVersionPath, bundleName);

            //        var filePath = lastVersionPath;

            //        if (staticManifest != null)
            //        {
            //            string[] addResource, deleteResource, updateResource;

            //            BuildUtils.BuildVersionMergeInfomation(filePath, exportDir, staticManifest, assetBundlemainfest, out addResource, out deleteResource, out updateResource);

            //            CopyResourceToVersionFile(addResource, updateResource, exportDir, versionPath);

            //            CopyAssetBundleManifestFile(exportDir, versionPath, __buildTarget);

            //            CreateVersionFile(versionPath, fullversion, __buildTarget);

            //            //生成信息中需要包含新增资源 删除资源 更新资源
            //            GenLittleVersionChange(addResource, updateResource, deleteResource, versionPath);
            //        }
            //        else
            //        {
            //            Debug.LogError("Error!!,Last Version Is Empty!" + version);
            //        }
            //    }
            //    else
            //    {
            //        Debug.LogError("Error! AssetBundleMainfest is Null.");
            //    }
            //}
            //else//大版本的情况
            //{
            //    if (Directory.Exists(versionPath))
            //    {
            //        Directory.Delete(versionPath, true);
            //    }

            //    Debug.Log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!build version" + version);

            //    //强制重新生成,全部拷贝到一个新的目录 更新大版本 生成到StreamingPath
            //    assetBundlemainfest = BuildBundlesUnity5(exportDir, __compressType, __buildTarget, true, builds);

            //    if (assetBundlemainfest != null)
            //    {
            //        //到version目录 1 2 3
            //        CopyAssetBundleManifestFile(exportDir, versionPath, __buildTarget);

            //        //备份文件到Version文件版本库中 虽然以后不用使用 但是需要提取版本变化文件
            //        CopyResourceToVersionFile(assetBundlemainfest.GetAllAssetBundles(), null, exportDir, versionPath);

            //        CreateVersionFile(versionPath, fullversion, __buildTarget);

            //        //到streaming目录 1 2 3
            //        CopyResouceToStreamingAssets(assetBundlemainfest, exportDir, __buildTarget);

            //        CopyVersionToStreamingAssets(versionPath, __buildTarget);

            //        CopyAssetBundleManifestToStreamingAssets(exportDir, __buildTarget);
            //        //拷贝到游戏里面 供下一个打包流程使用
            //    }
            //    else
            //    {
            //        Debug.LogError("Error! AssetBundleMainfest is Null.");
            //    }
            //}

            ////比对文件
            //if (__withMD5 && assetBundlemainfest != null)
            //{
            //    var bundlexList = CreateBundleMD5(assetBundlemainfest, exportDir);

            //    ProcessVersion(exportDir, bundlexList);

            //    //处理StreamingAsset里面的资源
            //    ChangeBundleNameToMd5(exportDir, bundlexList);
            //}

            //获取AssetBundle输出目录
            string out_path = GetAssetBundleOutPath();

            AssetBundleManifest assetBundlemainfest;

            //不强制打包 小幅度增加版本号,以上一个版本的数据比较变动
            assetBundlemainfest = BuildAssetBundle(out_path, compre_type, buildTarget, is_force_build, builds);

            if (assetBundlemainfest != null)
            {
                Debug.Log("资源数据打包完成  ~~~ ");

                //存储引用数据记录
                ManifestTools.OnSaveManifest(out_path + "/Data", assetBundlemainfest);

                //var staticManifest = BuildUtils.GetStaticAssetBundleManifest(lastVersionPath, bundleName);

                //var filePath = lastVersionPath;

                //if (staticManifest != null)
                //{
                //    string[] addResource, deleteResource, updateResource;

                //    BuildUtils.BuildVersionMergeInfomation(filePath, exportDir, staticManifest, assetBundlemainfest, out addResource, out deleteResource, out updateResource);

                //    CopyResourceToVersionFile(addResource, updateResource, exportDir, versionPath);

                //    CopyAssetBundleManifestFile(exportDir, versionPath, __buildTarget);

                //    CreateVersionFile(versionPath, fullversion, __buildTarget);

                //    //生成信息中需要包含新增资源 删除资源 更新资源
                //    GenLittleVersionChange(addResource, updateResource, deleteResource, versionPath);
                //}
                //else
                //{
                //    Debug.LogError("Error!!,Last Version Is Empty!" + version);
                //}
            }
            else
            {
                Debug.LogError("Error! AssetBundleMainfest is Null.");
            }

            //清理环境
            EditorUtility.UnloadUnusedAssetsImmediate();

            //更新资源列表
            BuildUtils.Refresh();
        }