コード例 #1
0
    // =================================================================================================================
    // === utility functions ===========================================================================================
    static List <string> GetScenesForBuild(E_ApplicationType inTarget, E_BuildType buildType = E_BuildType.Universal)
    {
        // ...................................................
        // get scenes from editor build settings,
        // exclude disabled ones and scenes which are not levels...
        List <string> listOfScenes = new List <string>();

        // ...................................................
        // add some global scenes...
        listOfScenes.Add("assets/Levels/Multiplayer/mp_core.unity");
        listOfScenes.Add("assets/Levels/Multiplayer/mp_vortex.unity");
        listOfScenes.Add("Assets/Levels/empty.unity");

        // ...................................................
        // add per target scenes...
        switch (inTarget)
        {
        case E_ApplicationType.DedicatedServer:
            listOfScenes.Insert(0, "Assets/Levels/DedicatedServer.unity");
            break;

        case E_ApplicationType.WebPlayerClient:
//			listOfScenes.Add("Assets/Levels/InitGame.unity");
            goto case E_ApplicationType.AndroidClient;

        case E_ApplicationType.OSXClient:
            goto case E_ApplicationType.AndroidClient;

        case E_ApplicationType.PCClient:
            goto case E_ApplicationType.AndroidClient;

        case E_ApplicationType.AndroidClient:
            listOfScenes.Add("Assets/Levels/Gui_16_9.unity");
            //listOfScenes.Add("assets/Levels/Multiplayer/loading.unity");
            //listOfScenes.Add("assets/Levels/Multiplayer/loadingcustomize.unity");
            //listOfScenes.Add("assets/Levels/Multiplayer/loadinggetpremium.unity");
            listOfScenes.Add("assets/Levels/LoadingToGame.unity");
            listOfScenes.Add("assets/Levels/LoadingFromGame.unity");
            listOfScenes.Add("Assets/Levels/MainMenu.unity");
            listOfScenes.Insert(0, "Assets/Levels/InitGame.unity");
            break;

        case E_ApplicationType.IOSClient:
            goto case E_ApplicationType.AndroidClient;

        default:
            Debug.LogError("Unknown target. Abort !!!");
            return(null);
        }

        return(listOfScenes);
    }
コード例 #2
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.");
    }