示例#1
0
        private void OnGUI()
        {
            EditorGUILayout.LabelField("Create builds for multiple platforms", EditorStyles.miniBoldLabel);
            GUILayout.Space(5);

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Build Model: ", EditorStyles.boldLabel, GUILayout.MaxWidth(110));
            buildSettings = (BuildModel)EditorGUILayout.ObjectField(buildSettings, typeof(BuildModel), false, GUILayout.MaxWidth(200));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Platform Model: ", EditorStyles.boldLabel, GUILayout.MaxWidth(110));
            platformSettings = (PlatformModel)EditorGUILayout.ObjectField(platformSettings, typeof(PlatformModel), false, GUILayout.MaxWidth(200));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Scene Model: ", EditorStyles.boldLabel, GUILayout.MaxWidth(110));
            sceneSettings = (SceneModel)EditorGUILayout.ObjectField(sceneSettings, typeof(SceneModel), false, GUILayout.MaxWidth(200));
            GUILayout.EndHorizontal();

            GUILayout.Space(10);

            if (GUILayout.Button("Build"))
            {
                if (!canBuild)
                {
                    return;
                }

                BuildGame();
            }

            if (buildSettings == null || platformSettings == null || sceneSettings == null)
            {
                EditorGUILayout.LabelField("Select the proper configs!", EditorStyles.miniBoldLabel, GUILayout.MaxWidth(200));
                canBuild = false;
            }
            else
            {
                EditorGUILayout.LabelField("You can now build!", EditorStyles.miniBoldLabel, GUILayout.MaxWidth(200));
                canBuild = true;
            }
        }
示例#2
0
        public override void OnInspectorGUI()
        {
            model = (PlatformModel)target;
            EditorGUILayout.LabelField("Platform Configurations", EditorStyles.boldLabel, GUILayout.MaxWidth(200));
            GUILayout.Space(5);

            List <PlatformModel.PlatformConfigModel> platformModels = new List <PlatformModel.PlatformConfigModel>();

            if (model.platformModel != null)
            {
                foreach (PlatformModel.PlatformConfigModel platformModel in model.platformModel)
                {
                    platformModels.Add(platformModel);
                }
            }


            if (GUILayout.Button("Add Platform", GUILayout.MinWidth(200), GUILayout.MaxWidth(200)))
            {
                platformModels.Add(new PlatformModel.PlatformConfigModel());
            }

            model.platformModel = platformModels.ToArray();

            for (int i = 0; i < model.platformModel.Length; i++)
            {
                GUILayout.BeginVertical();
                GUILayout.Label(model.platformModel[i].platform.ToString(), EditorStyles.whiteMiniLabel, GUILayout.MinWidth(100), GUILayout.MaxWidth(100));

                GUILayout.BeginHorizontal();
                GUILayout.Label("Platform: ", EditorStyles.label, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                model.platformModel[i].platform = (BuildTarget)EditorGUILayout.EnumPopup(model.platformModel[i].platform, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Label("Application Name: ", EditorStyles.label, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                model.platformModel[i].applicationName = EditorGUILayout.TextField(model.platformModel[i].applicationName, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Label("Build Path: ", EditorStyles.label, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                model.platformModel[i].buildPath = EditorGUILayout.TextField(model.platformModel[i].buildPath, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                if (GUILayout.Button("Browse", GUILayout.MaxWidth(75f)))
                {
                    model.platformModel[i].buildPath = EditorUtility.OpenFolderPanel("Path", "", "");
                }
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Label("File Extension: ", EditorStyles.label, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                model.platformModel[i].extension = (PlatformModel.EXTENSION)EditorGUILayout.EnumPopup(model.platformModel[i].extension, GUILayout.MinWidth(200), GUILayout.MaxWidth(200));
                GUILayout.EndHorizontal();

                if (GUILayout.Button("Remove Platform", GUILayout.MinWidth(200), GUILayout.MaxWidth(200)))
                {
                    RemoveRequestedPlatformModel(i);
                }

                GUILayout.EndVertical();

                GUILayout.Space(5.0f);
            }


            if (GUILayout.Button("Save Platform Config", GUILayout.MinWidth(200), GUILayout.MaxWidth(200)))
            {
                EditorUtility.SetDirty(model);
                AssetDatabase.SaveAssets();
            }

            GUILayout.Space(10);
        }