public static void ExecuteAction(UMakeTarget t, BuildAction action) { UMake umake; if (!UMake.Get().TryGet(out umake)) { return; } string buildPath; UMakeTarget.Path targetPath; switch (action) { case BuildAction.PreActions: EditorApplication.delayCall += () => t.ExecutePreBuildActions(umake); break; case BuildAction.Build: buildPath = UMake.GetBuildPath(); EditorApplication.delayCall += () => t.Build(umake, buildPath); break; case BuildAction.PostActions: EditorApplication.delayCall += () => t.ExecutePostBuildActions(umake); break; case BuildAction.OpenFolder: targetPath = t.GetTargetPath(umake.version, UMake.GetBuildPath()); EditorUtility.RevealInFinder(targetPath.directoryPath); break; } }
private static void ExecuteOnTarget(System.Action <UMake, UMakeTarget> callback) { if (callback == null) { return; } GetArgs(); string targetName; Args.TryGetValue("target", out targetName); UMakeTarget target; if (!UMake.GetTarget(targetName).TryGet(out target)) { throw new CliErrorException(string.Format("Could not find target '{0}'.", targetName)); } UMake umake; if (UMake.Get().TryGet(out umake)) { callback(umake, target); } }
public static void Select() { UMake.Get().IfSome(umake => { Selection.activeObject = umake; EditorGUIUtility.PingObject(umake); }); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { PropertyDrawerHelper.LoadAttributeTooltip(this, label); position = position.Right(-16.0f); float buttonWidth = 40.0f; Rect preButtonRect, buildButtonRect, postButtonRect; Rect propertyRect = position .Right(buttonWidth, out postButtonRect) .Right(buttonWidth, out buildButtonRect) .Right(buttonWidth, out preButtonRect); UMakeTarget target; UMakeTargetEditor.BuildAction action; using (IndentLevel.Do(0)) { EditorGUI.PropertyField(propertyRect, property, GUIContent.none); target = property.objectReferenceValue as UMakeTarget; action = UMakeTargetEditor.BuildAction.None; GUI.enabled = target != null && UMakeTargetEditor.CanBuild; if (GUI.Button(preButtonRect, "Pre", EditorStyles.miniButtonLeft)) { action = UMakeTargetEditor.BuildAction.PreActions; } if (GUI.Button(buildButtonRect, "Build", EditorStyles.miniButtonMid)) { action = UMakeTargetEditor.BuildAction.Build; } if (GUI.Button(postButtonRect, "Post", EditorStyles.miniButtonRight)) { action = UMakeTargetEditor.BuildAction.PostActions; } GUI.enabled = true; } property.serializedObject.ApplyModifiedProperties(); UMake umake; if (UMake.Get().TryGet(out umake) && target != null) { UMakeTargetEditor.ExecuteAction(target, action); } }