コード例 #1
0
    static void BuildAndroidClient(string defineSymbols = "", E_BuildType buildType = E_BuildType.Universal)
    {
        if (EditorUserBuildSettings.selectedBuildTargetGroup != BuildTargetGroup.Android)
        {
            Debug.LogError("Invalid build target group (" + EditorUserBuildSettings.selectedBuildTargetGroup + ") \n." +
                           "In this moment we are able to build only android clients...");
            return;
        }

        /*if(EditorUserBuildSettings.androidBuildSubtarget != AndroidBuildSubtarget.DXT)
         * {
         *      Debug.LogError("Invalid android sub target (" + EditorUserBuildSettings.androidBuildSubtarget + ") \n."+
         *                                 "In this moment we support only DXT android clients...");
         *      return;
         * }*/

        // .............................................
        // Start to build player...
        string infoPrefix = "==== Client build ";

        Debug.Log(infoPrefix + "started.");


        // .............................................
        // get scenes for dedicated server...
        List <string> listOfScenes = GetScenesForBuild(E_ApplicationType.AndroidClient, buildType);

        if (listOfScenes.Count <= 0)
        {
            Debug.LogWarning(infoPrefix + "List of scenes is empty");
            return;
        }
        Debug.Log(infoPrefix + ", Building Scenes: " + ConvertStringArrayToString(listOfScenes.ToArray()));


        // .............................................
        // prepare output directory...
        MobileTextureSubtarget androidSubTarget = EditorUserBuildSettings.androidBuildSubtarget;
        string subTarget = androidSubTarget.ToString().ToLower();
        string buildName = buildType != E_BuildType.Universal ? ("_" + buildType.ToString()) : string.Empty;

        string outputDirectory = "../_Packages/AndroidPlayer_" + subTarget + buildName + "/";

        System.IO.Directory.CreateDirectory(outputDirectory);

        Debug.Log(infoPrefix + "Output directory: " + outputDirectory);


        // .............................................
        // prepare player name...
        string playerName = outputDirectory + "DeadZone_" + subTarget + buildName + ".apk";

        Debug.Log(infoPrefix + "Player name: " + playerName);


        // .............................................
        // apply settings from
        ApplyAndroidSecretSettings(outputDirectory + "Settings.json");

        // if we are using split apk add loader level
        if (PlayerSettings.Android.useAPKExpansionFiles == true)
        {
            listOfScenes.Insert(0, "MadFinger Assets/Levels/Loader.unity");
        }

        Build(E_ApplicationType.AndroidClient, listOfScenes.ToArray(), playerName, BuildTarget.Android, BuildOptions.None, defineSymbols);

        Debug.Log(infoPrefix + "DONE.");
    }