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); }
public BuildStepTypeFilterAttribute(EBuildStepType buildStepType) { mBuildStepType = buildStepType; }
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(); }