Ejemplo n.º 1
0
 public bool CheckFilters(EBuildStepType pDrawingBuildStepType, BuildTarget pPlatform)
 {
     if (mPlatformFilter != null)
     {
         if (mPlatformFilter.mBuildTarget != pPlatform)
         {
             return(false);
         }
     }
     if (mTypeFilter != null)
     {
         if (mTypeFilter.mBuildStepType != pDrawingBuildStepType)
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 2
0
 public BuildStepTypeFilterAttribute(EBuildStepType buildStepType)
 {
     mBuildStepType = buildStepType;
 }
Ejemplo n.º 3
0
        public void OnGUI(BuildProcess pProcess, BuildCollection pCollection)
        {
            if (pProcess == null)
            {
                return;
            }

            if (pProcess != mEditedBuildProcess)
            {
                if (mEditedBuildProcess != null)
                {
                    SaveScenesToStringList();
                }

                mEditedBuildProcess = pProcess;
                mCollection         = pCollection;

                LoadScenesFromStringList();
                OnEnable();

                // after switching to another process, we want to make sure to unfocus all possible controls
                // like textfields. This will remove an issue, where dangling focus between process switching could happen
                GUI.FocusControl("");
            }

            GUILayout.BeginVertical();

            GUILayout.Label("Build Process", Styles.detailsTitle);

            Styles.HorizontalSeparator();

            Undo.RecordObject(mCollection, "Edit Build Process Details");
            pProcess.mName = EditorGUILayout.TextField("Name", mEditedBuildProcess.mName);


            mEditedBuildProcess.mPlatform = (BuildTarget)EditorGUILayout.EnumPopup("Platform", mEditedBuildProcess.mPlatform);

            mEditedBuildProcess.mPretend = EditorGUILayout.Toggle(new GUIContent("Pretend Build", "Will not trigger a unity build, but run everything else. "), mEditedBuildProcess.mPretend);

            GUILayout.Space(5);
            mShowBuildOptions = EditorGUILayout.Foldout(mShowBuildOptions, "Build Options");
            GUILayout.BeginHorizontal();
            GUILayout.Space(25);

            if (mShowBuildOptions)
            {
                GUILayout.BeginVertical();

                foreach (var buildOption in mBuildOptions)
                {
                    bool selVal = (mEditedBuildProcess.mBuildOptions & buildOption) != 0;
                    {
                        bool resVal = EditorGUILayout.ToggleLeft(buildOption.ToString(), selVal);
                        if (resVal != selVal)
                        {
                            if (resVal)
                            {
                                mEditedBuildProcess.mBuildOptions = mEditedBuildProcess.mBuildOptions | buildOption;
                            }
                            else
                            {
                                mEditedBuildProcess.mBuildOptions = mEditedBuildProcess.mBuildOptions & ~buildOption;
                            }
                            UpdateSelectedOptions();
                        }
                    }
                }


                GUILayout.EndVertical();
            }
            else
            {
                GUILayout.Label(selectedOptionsString);
            }


            GUILayout.EndHorizontal();
            GUILayout.Space(5);

            DrawOutputPathSelector();

            ReorderableListGUI.Title("Included Scenes");
            ReorderableListGUI.ListField(mEditedBuildProcess.mSceneAssets, SceneDrawer);

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();

            if (GUILayout.Button("Copy scenes from settings"))
            {
                CopyScenesFromSettings();
            }

            if (GUILayout.Button("Clear scenes"))
            {
                mEditedBuildProcess.mSceneAssets.Clear();
            }

            GUILayout.EndHorizontal();

            Styles.HorizontalSeparator();

            mDrawingBuildStepType = EBuildStepType.PreBuildStep;
            ReorderableListGUI.Title("Pre Build Steps");
            ReorderableListGUI.ListField(mEditedBuildProcess.mPreBuildSteps, StepDrawer);


            Styles.HorizontalSeparator();
            GUILayout.Label("Actual Unity Build", Styles.mediumHint);
            Styles.HorizontalSeparator();


            mDrawingBuildStepType = EBuildStepType.PostBuildStep;
            ReorderableListGUI.Title("Post Build Steps");
            ReorderableListGUI.ListField(mEditedBuildProcess.mPostBuildSteps, StepDrawer);


            GUILayout.EndVertical();
        }