Repaint any inspectors that shows this editor.
void DrawBacktraceConfigSections() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(BacktraceIntegrationWindowLabels.LABEL_INTEGRATION_CONFIGSECTION_HEADER, BTEditorUtility.HeaderTextStyle); GUILayout.FlexibleSpace(); backtraceConfiguration = (BacktraceConfiguration)EditorGUILayout .ObjectField(backtraceConfiguration, typeof(BacktraceConfiguration), false, new GUILayoutOption[] { GUILayout.MinWidth(position.width / 3) }); EditorGUILayout.EndHorizontal(); BTEditorUtility.DrawHorizontalUILine(Color.grey, 2, 1); if (backtraceConfiguration != null) { BTEditorUtility.DrawSubHeading("Settings for: " + backtraceConfiguration.name); if (backtraceConfigurationEditor == null) { backtraceConfigurationEditor = UnityEditor.Editor.CreateEditor(backtraceConfiguration); } backtraceConfigurationEditor.OnInspectorGUI(); backtraceConfigurationEditor.Repaint(); } else { DrawConfigCreatorSection(); } }
private static void Repaint() { if (editor != null) { editor.Repaint(); } //else if (_editorWindow != null) _editorWindow.Repaint(); }
public static void DrawMultiSelect( IBezier3DSplineData splineData, UnityEditor.Editor editorWindow, Transform transform = null) { Handles.color = Color.blue; for (var i = 0; i < CurveEditorState.SelectedKnots.Count; i++) { if (Handles.Button( transform == null ? splineData.GetKnot(CurveEditorState.SelectedKnots[i]).position : transform.TransformPoint(splineData.GetKnot(CurveEditorState.SelectedKnots[i]).position), Camera.current.transform.rotation, SceneGUIConstants.HandleSize, SceneGUIConstants.HandleSize, Handles.CircleHandleCap)) { CurveEditorState.SelectKnot(CurveEditorState.SelectedKnots[i], true); editorWindow.Repaint(); } } var handlePos = Vector3.zero; if (Tools.pivotMode == PivotMode.Center) { for (var i = 0; i < CurveEditorState.SelectedKnots.Count; i++) { handlePos += splineData.GetKnot(CurveEditorState.SelectedKnots[i]).position; } handlePos /= CurveEditorState.SelectedKnots.Count; } else { handlePos = splineData.GetKnot(CurveEditorState.SelectedKnotIndex).position; } if (transform != null) { handlePos = transform.TransformPoint(handlePos); } Handles.PositionHandle(handlePos, Tools.handleRotation); }
public static void DrawUnselectedKnots( IBezier3DSplineData splineData, UnityEditor.Editor editorWindow, Transform transform = null) { for (var i = 0; i < splineData.KnotCount; i++) { if (CurveEditorState.SelectedKnots.Contains(i)) { continue; } var knot = splineData.GetKnot(i); var knotWorldPos = transform == null ? knot.position : transform.TransformPoint(knot.position); if (knot.rotation.HasValue) { Handles.color = Handles.yAxisColor; var rot = knot.rotation.Value; Handles.ArrowHandleCap( 0, knotWorldPos, rot * Quaternion.AngleAxis(90, Vector3.left), 0.15f, EventType.Repaint); } Handles.color = Color.white; if (Handles.Button( knotWorldPos, Camera.current.transform.rotation, HandleUtility.GetHandleSize(knotWorldPos) * SceneGUIConstants.HandleSize, HandleUtility.GetHandleSize(knotWorldPos) * SceneGUIConstants.HandleSize, Handles.CircleHandleCap)) { CurveEditorState.SelectKnot(i, Event.current.control); editorWindow.Repaint(); } } }
public XArea BeginCommonArea(string id,string name,Editor editor,bool forceOpen) { GUIStyle buttonStyle = EffectLayerCustom.Xbutton; GUIStyle style = EffectLayerCustom.XArea; if (!XAreas.ContainsKey(id)) { XAreas.Add(id,new XArea()); } //find my area. XArea m = XAreas[id]; style.stretchWidth = true; Rect gotLastRect = GUILayoutUtility.GetRect (new GUIContent (),style,GUILayout.Height (m.LastRect.height)); GUILayout.BeginArea (m.LastRect,style); Rect newRect = EditorGUILayout.BeginVertical(); //head bar EditorGUILayout.BeginHorizontal(); m.Open = GUILayout.Toggle(m.Open,GUIContent.none,EffectLayerCustom.XToggle2, GUILayout.Width(18f),GUILayout.Height(18f)); m.Enable = true; if (GUILayout.Button (name,buttonStyle,GUILayout.Height(20f))) m.Open = !m.Open; if (forceOpen) m.Open = true; //increase a bit, need to do this. newRect.height += 3f; EditorGUILayout.EndHorizontal(); GUI.enabled = m.Enable; if (!m.Open) { newRect.height = MinHeight; } //calculate area size. if (Event.current.type == EventType.Repaint || Event.current.type == EventType.ScrollWheel) { newRect.x = gotLastRect.x; newRect.y = gotLastRect.y; newRect.width = gotLastRect.width; newRect.height += style.padding.top+ style.padding.bottom; if (m.LastRect != newRect) { m.LastRect = newRect; editor.Repaint (); } } return m; }
public override void Update(Event windowEvent, GUIStyle fontStyle, Editor window, int width, int height) { if (_activeTex == null) return; Rect original = GUILayoutUtility.GetRect(_buttonContent, _buttonStyle, GUILayout.Height(_buttonHeight)); _buttonRect = original; Rect textField = new Rect(original); textField.xMin += 10; textField.xMax -= width * 0.32f; textField.yMin += 20; textField.yMax -= 10; Rect iconField = new Rect(original); iconField.xMin += 10; iconField.xMax -= (width - 60); iconField.yMin += 5; iconField.yMax -= 35; Rect lerpSpeedLabelField = new Rect(original); lerpSpeedLabelField.xMin += 10; lerpSpeedLabelField.xMax -= (width - 100); lerpSpeedLabelField.yMin += 75; lerpSpeedLabelField.yMax -= 82; Rect distanceStopLabelField = new Rect(original); distanceStopLabelField.xMin += 10; distanceStopLabelField.xMax -= (width - 100); distanceStopLabelField.yMin += 107; distanceStopLabelField.yMax -= 50; Rect angleStopLabelField = new Rect(original); angleStopLabelField.xMin += 10; angleStopLabelField.xMax -= (width - 100); angleStopLabelField.yMin += 140; angleStopLabelField.yMax -= 18; if (windowEvent.isMouse && _buttonRect.Contains(windowEvent.mousePosition)) { if (windowEvent.type == EventType.MouseDown) { if (_buttonDown != null) { _activeTex = _buttonDown; _buttonContent.image = _buttonUp; } } else if (windowEvent.type == EventType.MouseUp) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } if (_submitCallback != null) _submitCallback(); } } else if (windowEvent.isMouse) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } } GUI.DrawTexture(_buttonRect, _activeTex, ScaleMode.StretchToFill); if (_buttonIcon != null) GUI.DrawTexture(iconField, _buttonIcon, ScaleMode.StretchToFill); if (fontStyle != null) GUI.Label(_buttonRect, _buttonTitle, fontStyle); if (!string.IsNullOrEmpty(_toolTiptext)) { GUI.color = Color.yellow; GUI.TextArea(textField, _toolTiptext); GUI.color = Color.white; } if (_submitButtonVisibile) { bool fullScreenButton = string.IsNullOrEmpty(_toolTiptext); Rect submitField = new Rect(original); submitField.xMin += !fullScreenButton ? (width * 0.68f) + _submitButtonWidth : 10 + _submitButtonWidth; submitField.xMax -= 10 - _submitButtonWidth; submitField.yMin += 20 + _submitButtonHeight; submitField.yMax -= 125 - _submitButtonHeight; Rect lerpSpeedLabel = new Rect(original); lerpSpeedLabel.xMin += 10; lerpSpeedLabel.xMax -= 10; lerpSpeedLabel.yMin += 62; lerpSpeedLabel.yMax -= 55; Rect distanceStopLabel = new Rect(original); distanceStopLabel.xMin += 10; distanceStopLabel.xMax -= 10; distanceStopLabel.yMin += 93; distanceStopLabel.yMax -= 25; Rect angleStopLabel = new Rect(original); angleStopLabel.xMin += 10; angleStopLabel.xMax -= 10; angleStopLabel.yMin += 125; angleStopLabel.yMax -= 25; Rect lerpSpeedField = new Rect(original); lerpSpeedField.xMin += (width * 0.25f) + _submitButtonWidth; lerpSpeedField.xMax -= 10 - _submitButtonWidth; lerpSpeedField.yMin += 75 + _submitButtonHeight; lerpSpeedField.yMax -= 75; Rect distanceStopField = new Rect(original); distanceStopField.xMin += (width * 0.25f) + _submitButtonWidth; distanceStopField.xMax -= 10 - _submitButtonWidth; distanceStopField.yMin += 107 + _submitButtonHeight; distanceStopField.yMax -= 45; Rect angleStopField = new Rect(original); angleStopField.xMin += (width * 0.25f) + _submitButtonWidth; angleStopField.xMax -= 10 - _submitButtonWidth; angleStopField.yMin += 140 + _submitButtonHeight; angleStopField.yMax -= 10; _submitButtonTitle = Interpolation ? "Disable" : "Enable"; GUI.color = Interpolation ? Color.green : Color.gray; if (GUI.Button(submitField, _submitButtonTitle)) { Interpolation = !Interpolation; _submitButtonTitle = Interpolation ? "Disable" : "Enable"; if (_submitButtonAction != null) _submitButtonAction(); } GUI.color = Color.white; GUI.Label(lerpSpeedLabel, "Lerp Speed", fontStyle); GUI.Label(distanceStopLabel, "Distance Stop", fontStyle); GUI.Label(angleStopLabel, "Angle Stop", fontStyle); GUI.enabled = Interpolation; LerpSpeed = GUI.HorizontalSlider(lerpSpeedField, LerpSpeed, 0f, 1f); float tempLerpSpeed = LerpSpeed; if (float.TryParse(GUI.TextField(lerpSpeedLabelField, LerpSpeed.ToString()), out tempLerpSpeed)) { LerpSpeed = tempLerpSpeed; } DistanceStop = GUI.HorizontalSlider(distanceStopField, DistanceStop, 0f, 1f); float tempDistanceStop = DistanceStop; if (float.TryParse(GUI.TextField(distanceStopLabelField, DistanceStop.ToString()), out tempDistanceStop)) { DistanceStop = tempDistanceStop; } AngleStop = GUI.HorizontalSlider(angleStopField, AngleStop, 1f, 359.0f); float tempAngleStop = AngleStop; if (float.TryParse(GUI.TextField(angleStopLabelField, AngleStop.ToString()), out tempAngleStop)) { AngleStop = tempAngleStop; } GUI.enabled = true; } if (_prevTex != _activeTex) { _prevTex = _activeTex; window.Repaint(); } }
public override void Update(Event windowEvent, GUIStyle fontStyle, Editor window, int width, int height) { if (_activeTex == null) return; Rect original = GUILayoutUtility.GetRect(_buttonContent, _buttonStyle, GUILayout.Height(_buttonHeight)); _buttonRect = original; Rect lerpPositionField = new Rect(original); lerpPositionField.xMin += 10; lerpPositionField.xMax -= (width - (width * 0.35f)); lerpPositionField.yMin += 55 + ADJUSTABLE_HEIGHT_MIN; lerpPositionField.yMax -= 90 + ADJUSTABLE_HEIGHT_MAX; Rect lerpPositionXField = new Rect(original); lerpPositionXField.xMin += (width - (width * 0.68f)); lerpPositionXField.xMax -= (width - (width * 0.55f)); lerpPositionXField.yMin += 55 + ADJUSTABLE_HEIGHT_MIN; lerpPositionXField.yMax -= 90 + ADJUSTABLE_HEIGHT_MAX; Rect lerpPositionYField = new Rect(original); lerpPositionYField.xMin += (width - (width * 0.48f)); lerpPositionYField.xMax -= (width - (width * 0.75f)); lerpPositionYField.yMin += 55 + ADJUSTABLE_HEIGHT_MIN; lerpPositionYField.yMax -= 90 + ADJUSTABLE_HEIGHT_MAX; Rect lerpPositionZField = new Rect(original); lerpPositionZField.xMin += (width - (width * 0.275f)); lerpPositionZField.xMax -= (width - (width * 0.96f)); lerpPositionZField.yMin += 55 + ADJUSTABLE_HEIGHT_MIN; lerpPositionZField.yMax -= 90 + ADJUSTABLE_HEIGHT_MAX; Rect lerpRotationField = new Rect(original); lerpRotationField.xMin += 10; lerpRotationField.xMax -= (width - (width * 0.35f)); lerpRotationField.yMin += 95 + ADJUSTABLE_HEIGHT_MIN - 10; lerpRotationField.yMax -= 50 + ADJUSTABLE_HEIGHT_MAX + 10; Rect lerpRotationXField = new Rect(original); lerpRotationXField.xMin += (width - (width * 0.68f)); lerpRotationXField.xMax -= (width - (width * 0.55f)); lerpRotationXField.yMin += 95 + ADJUSTABLE_HEIGHT_MIN - 10; lerpRotationXField.yMax -= 50 + ADJUSTABLE_HEIGHT_MAX + 10; Rect lerpRotationYField = new Rect(original); lerpRotationYField.xMin += (width - (width * 0.48f)); lerpRotationYField.xMax -= (width - (width * 0.75f)); lerpRotationYField.yMin += 95 + ADJUSTABLE_HEIGHT_MIN - 10; lerpRotationYField.yMax -= 50 + ADJUSTABLE_HEIGHT_MAX + 10; Rect lerpRotationZField = new Rect(original); lerpRotationZField.xMin += (width - (width * 0.275f)); lerpRotationZField.xMax -= (width - (width * 0.96f)); lerpRotationZField.yMin += 95 + ADJUSTABLE_HEIGHT_MIN - 10; lerpRotationZField.yMax -= 50 + ADJUSTABLE_HEIGHT_MAX + 10; Rect lerpScaleField = new Rect(original); lerpScaleField.xMin += 10; lerpScaleField.xMax -= (width - (width * 0.35f)); lerpScaleField.yMin += 135 + ADJUSTABLE_HEIGHT_MIN - 20; lerpScaleField.yMax -= 10 + ADJUSTABLE_HEIGHT_MAX + 20; Rect lerpScaleXField = new Rect(original); lerpScaleXField.xMin += (width - (width * 0.68f)); lerpScaleXField.xMax -= (width - (width * 0.55f)); lerpScaleXField.yMin += 135 + ADJUSTABLE_HEIGHT_MIN - 20; lerpScaleXField.yMax -= 10 + ADJUSTABLE_HEIGHT_MAX + 20; Rect lerpScaleYField = new Rect(original); lerpScaleYField.xMin += (width - (width * 0.48f)); lerpScaleYField.xMax -= (width - (width * 0.75f)); lerpScaleYField.yMin += 135 + ADJUSTABLE_HEIGHT_MIN - 20; lerpScaleYField.yMax -= 10 + ADJUSTABLE_HEIGHT_MAX + 20; Rect lerpScaleZField = new Rect(original); lerpScaleZField.xMin += (width - (width * 0.275f)); lerpScaleZField.xMax -= (width - (width * 0.96f)); lerpScaleZField.yMin += 135 + ADJUSTABLE_HEIGHT_MIN - 20; lerpScaleZField.yMax -= 10 + ADJUSTABLE_HEIGHT_MAX + 20; Rect iconField = new Rect(original); iconField.xMin += 10; iconField.xMax -= (width - 60); iconField.yMin += 5; iconField.yMax -= 35; if (windowEvent.isMouse && _buttonRect.Contains(windowEvent.mousePosition)) { if (windowEvent.type == EventType.MouseDown) { if (_buttonDown != null) { _activeTex = _buttonDown; _buttonContent.image = _buttonUp; } } else if (windowEvent.type == EventType.MouseUp) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } if (_submitCallback != null) _submitCallback(); } } else if (windowEvent.isMouse) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } } GUI.DrawTexture(_buttonRect, _activeTex, ScaleMode.StretchToFill); if (_buttonIcon != null) GUI.DrawTexture(iconField, _buttonIcon, ScaleMode.StretchToFill); if (fontStyle != null) GUI.Label(_buttonRect, _buttonTitle, fontStyle); if (_submitButtonVisibile) { Rect submitField = new Rect(original); submitField.xMin += 10 + _submitButtonWidth; submitField.xMax -= 10 - _submitButtonWidth; submitField.yMin += 20 + _submitButtonHeight; submitField.yMax -= 125 - _submitButtonHeight - 15; _submitButtonTitle = _easyControlsButtonVisible ? "Lock" : "Modify"; GUI.color = _easyControlsButtonVisible ? Color.green : Color.gray; if (GUI.Button(submitField, _submitButtonTitle)) { _easyControlsButtonVisible = !_easyControlsButtonVisible; _submitButtonTitle = _easyControlsButtonVisible ? "Lock" : "Modify"; if (_submitButtonAction != null) _submitButtonAction(); } GUI.color = Color.white; GUI.enabled = _easyControlsButtonVisible; #region Lerp Position GUI GUI.color = LerpPosition ? Color.white : Color.gray; if (GUI.Button(lerpPositionField, "Lerp Position")) { LerpPosition = !LerpPosition; } //GUI.enabled = LerpPosition && _easyControlsButtonVisible; GUI.color = _lerpPosX ? Color.white : Color.gray; if (GUI.Button(lerpPositionXField, "X")) { _lerpPosX = !_lerpPosX; } GUI.color = Color.white; GUI.color = _lerpPosY ? Color.white : Color.gray; if (GUI.Button(lerpPositionYField, "Y")) { _lerpPosY = !_lerpPosY; } GUI.color = Color.white; GUI.color = _lerpPosZ ? Color.white : Color.gray; if (GUI.Button(lerpPositionZField, "Z")) { _lerpPosZ = !_lerpPosZ; } SerializePosition = GetSerializedVector3FromBools(_lerpPosX, _lerpPosY, _lerpPosZ); GUI.enabled = _easyControlsButtonVisible; #endregion #region Lerp Rotation GUI GUI.color = LerpRotation ? Color.white : Color.gray; if (GUI.Button(lerpRotationField, "Lerp Rotation")) { LerpRotation = !LerpRotation; } //GUI.enabled = LerpRotation && _easyControlsButtonVisible; GUI.color = _lerpRotX ? Color.white : Color.gray; if (GUI.Button(lerpRotationXField, "X")) { _lerpRotX = !_lerpRotX; } GUI.color = Color.white; GUI.color = _lerpRotY ? Color.white : Color.gray; if (GUI.Button(lerpRotationYField, "Y")) { _lerpRotY = !_lerpRotY; } GUI.color = Color.white; GUI.color = _lerpRotZ ? Color.white : Color.gray; if (GUI.Button(lerpRotationZField, "Z")) { _lerpRotZ = !_lerpRotZ; } SerializeRotation = GetSerializedVector3FromBools(_lerpRotX, _lerpRotY, _lerpRotZ); GUI.enabled = _easyControlsButtonVisible; #endregion #region Lerp Scale GUI GUI.color = LerpScale ? Color.white : Color.gray; if (GUI.Button(lerpScaleField, "Lerp Scale")) { LerpScale = !LerpScale; } //GUI.enabled = LerpScale && _easyControlsButtonVisible; GUI.color = _lerpScaleX ? Color.white : Color.gray; if (GUI.Button(lerpScaleXField, "X")) { _lerpScaleX = !_lerpScaleX; } GUI.color = Color.white; GUI.color = _lerpScaleY ? Color.white : Color.gray; if (GUI.Button(lerpScaleYField, "Y")) { _lerpScaleY = !_lerpScaleY; } GUI.color = Color.white; GUI.color = _lerpScaleZ ? Color.white : Color.gray; if (GUI.Button(lerpScaleZField, "Z")) { _lerpScaleZ = !_lerpScaleZ; } SerializeScale = GetSerializedVector3FromBools(_lerpScaleX, _lerpScaleY, _lerpScaleZ); GUI.enabled = _easyControlsButtonVisible; #endregion GUI.color = Color.white; GUI.enabled = true; } if (_prevTex != _activeTex) { _prevTex = _activeTex; window.Repaint(); } }
public override void Update(Event windowEvent, GUIStyle fontStyle, Editor window, int width, int height) { if (_activeTex == null) return; Rect original = GUILayoutUtility.GetRect(_buttonContent, _buttonStyle, GUILayout.Height(_buttonHeight)); _buttonRect = original; //if (!ServerIsAuthority) // _buttonRect.height -= 25; Rect textField = new Rect(original); textField.xMin += 10; textField.xMax -= width * 0.32f; textField.yMin += 20; if (_clientSidePredictionAllowed) textField.yMax -= 20; else textField.yMax -= 10; Rect iconField = new Rect(original); iconField.xMin += 10; iconField.xMax -= (width - 60); iconField.yMin += 5; iconField.yMax -= 35; if (windowEvent.isMouse && _buttonRect.Contains(windowEvent.mousePosition)) { if (windowEvent.type == EventType.MouseDown) { if (_buttonDown != null) { _activeTex = _buttonDown; _buttonContent.image = _buttonUp; } } else if (windowEvent.type == EventType.MouseUp) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } if (_submitCallback != null) _submitCallback(); } } else if (windowEvent.isMouse) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } } GUI.DrawTexture(_buttonRect, _activeTex, ScaleMode.StretchToFill); if (_buttonIcon != null) GUI.DrawTexture(iconField, _buttonIcon, ScaleMode.StretchToFill); if (fontStyle != null) GUI.Label(_buttonRect, _buttonTitle, fontStyle); if (!string.IsNullOrEmpty(_toolTiptext)) { GUI.color = Color.yellow; GUI.TextArea(textField, _toolTiptext); GUI.color = Color.white; } if (_submitButtonVisibile) { bool fullScreenButton = string.IsNullOrEmpty(_toolTiptext); Rect submitField = new Rect(original); submitField.xMin += !fullScreenButton ? (width*0.68f) + _submitButtonWidth : 10 + _submitButtonWidth; submitField.xMax -= 10 - _submitButtonWidth; submitField.yMin += 20 + _submitButtonHeight; submitField.yMax -= _clientSidePredictionAllowed ? 35 - _submitButtonHeight : 10 - _submitButtonHeight; Rect clientsidePredField = new Rect(original); clientsidePredField.xMin += !fullScreenButton ? (width * 0.68f) + _submitButtonWidth : 10 + _submitButtonWidth; clientsidePredField.xMax -= 10 - _submitButtonWidth; clientsidePredField.yMin += 45 + _submitButtonHeight; clientsidePredField.yMax -= _clientSidePredictionAllowed ? 15 - _submitButtonHeight : 10 - _submitButtonHeight; if (_selfButton) { _submitButtonTitle = ServerIsAuthority ? "Disable" : "Enable"; } GUI.color = ServerIsAuthority ? Color.green : Color.gray; if (GUI.Button(submitField, _submitButtonTitle)) { if (_selfButton) { ServerIsAuthority = !ServerIsAuthority; _submitButtonTitle = ServerIsAuthority ? "Disable" : "Enable"; } if (_submitButtonAction != null) _submitButtonAction(); } GUI.color = Color.white; GUI.enabled = ServerIsAuthority; GUI.color = ClientSidePrediction ? Color.green : Color.gray; string clientSideText = ClientSidePrediction ? "Disable Client side Prediction" : "Enable Client side Prediction"; if (GUI.Button(clientsidePredField, clientSideText)) { if (_selfButton) { ClientSidePrediction = !ClientSidePrediction; } } GUI.color = Color.white; GUI.enabled = true; } if (_prevTex != _activeTex) { _prevTex = _activeTex; window.Repaint(); } }
public override void Update(Event windowEvent, GUIStyle fontStyle, Editor window, int width, int height) { if (_activeTex == null) return; _buttonRect = GUILayoutUtility.GetRect(_buttonContent, _buttonStyle, GUILayout.Height(_buttonHeight)); Rect iconField = new Rect(_buttonRect); iconField.xMin += 10; iconField.xMax -= (width - 60); iconField.yMin += 5; iconField.yMax -= 35; Rect throttleField = new Rect(_buttonRect); throttleField.xMin += 100; throttleField.xMax -= 10; throttleField.yMin += 75; throttleField.yMax -= 5; Rect throttleLabelField = new Rect(_buttonRect); throttleLabelField.xMin += 10; throttleLabelField.xMax -= (width - 125); throttleLabelField.yMin += 75; throttleLabelField.yMax -= 8; if (string.IsNullOrEmpty(_toolTiptext)) _buttonRect.yMax -= 50; if (windowEvent.isMouse && _buttonRect.Contains(windowEvent.mousePosition)) { if (windowEvent.type == EventType.MouseDown) { if (_buttonDown != null) { _activeTex = _buttonDown; _buttonContent.image = _buttonUp; } } else if (windowEvent.type == EventType.MouseUp) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } if (_submitCallback != null) _submitCallback(); } } else if (windowEvent.isMouse) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } } GUI.DrawTexture(_buttonRect, _activeTex, ScaleMode.StretchToFill); if (_buttonIcon != null) GUI.DrawTexture(iconField, _buttonIcon, ScaleMode.StretchToFill); if (fontStyle != null) GUI.Label(_buttonRect, _buttonTitle, fontStyle); if (!string.IsNullOrEmpty(_toolTiptext)) { Rect textField = new Rect(_buttonRect); textField.xMin += 10; textField.xMax -= 10; textField.yMin += 20; textField.yMax -= 35; GUI.color = Color.yellow; GUI.TextArea(textField, _toolTiptext); GUI.color = Color.white; } else { throttleField.yMin -= 60; throttleField.yMax -= 60; throttleLabelField.yMin -= 60; throttleLabelField.yMax -= 60; } NetworkThrottle = GUI.HorizontalSlider(throttleField, NetworkThrottle, 0f, 100f); if (NetworkThrottle >= 0.03f) GUI.color = Color.green; else if (NetworkThrottle > 0.00f) GUI.color = Color.yellow; else GUI.color = Color.red; float tempThrottle = 0; string returnText = GUI.TextField(throttleLabelField, NetworkThrottle.ToString("F")); if (returnText == ".") returnText = "0.01"; if (float.TryParse(returnText, out tempThrottle)) NetworkThrottle = tempThrottle; if (NetworkThrottle > 100) NetworkThrottle = 100; GUI.color = Color.white; if (_prevTex != _activeTex) { _prevTex = _activeTex; window.Repaint(); } }
public override void Update(Event windowEvent, GUIStyle fontStyle, Editor window, int width, int height) { if (_activeTex == null) return; _buttonRect = GUILayoutUtility.GetRect(_buttonContent, _buttonStyle, GUILayout.Height(_buttonHeight)); Rect iconField = new Rect(_buttonRect); iconField.xMin += 10; iconField.xMax -= (width - 60); iconField.yMin += 5; iconField.yMax -= 35; Rect udpReliableField = new Rect(_buttonRect); udpReliableField.xMin += 10; udpReliableField.xMax -= 10; udpReliableField.yMin += 60; udpReliableField.yMax -= 115; Rect isPlayerField = new Rect(_buttonRect); isPlayerField.xMin += 10; isPlayerField.xMax -= 10; isPlayerField.yMin += 92; isPlayerField.yMax -= 85; Rect destroyOnDisconnectField = new Rect(_buttonRect); destroyOnDisconnectField.xMin += 10; destroyOnDisconnectField.xMax -= 10; destroyOnDisconnectField.yMin += 125; destroyOnDisconnectField.yMax -= 50; Rect teleportToInitialPositionField = new Rect(_buttonRect); teleportToInitialPositionField.xMin += 10; teleportToInitialPositionField.xMax -= 10; teleportToInitialPositionField.yMin += 160; teleportToInitialPositionField.yMax -= 15; if (string.IsNullOrEmpty(_toolTiptext)) _buttonRect.yMax -= 50; if (windowEvent.isMouse && _buttonRect.Contains(windowEvent.mousePosition)) { if (windowEvent.type == EventType.MouseDown) { if (_buttonDown != null) { _activeTex = _buttonDown; _buttonContent.image = _buttonUp; } } else if (windowEvent.type == EventType.MouseUp) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } if (_submitCallback != null) _submitCallback(); } } else if (windowEvent.isMouse) { if (_buttonUp != null) { _activeTex = _buttonUp; _buttonContent.image = _buttonUp; } } GUI.DrawTexture(_buttonRect, _activeTex, ScaleMode.StretchToFill); if (_buttonIcon != null) GUI.DrawTexture(iconField, _buttonIcon, ScaleMode.StretchToFill); if (fontStyle != null) GUI.Label(_buttonRect, _buttonTitle, fontStyle); if (!string.IsNullOrEmpty(_toolTiptext)) { Rect textField = new Rect(_buttonRect); textField.xMin += 10; textField.xMax -= 10; textField.yMin += 20; textField.yMax -= 150; GUI.color = Color.yellow; GUI.TextArea(textField, _toolTiptext); GUI.color = Color.white; } GUI.color = UDPReliable ? Color.white : Color.gray; if (GUI.Button(udpReliableField, "UDP Reliable")) { UDPReliable = !UDPReliable; } GUI.color = Color.white; GUI.color = IsPlayer ? Color.white : Color.gray; if (GUI.Button(isPlayerField, "Is Player")) { IsPlayer = !IsPlayer; } GUI.color = Color.white; GUI.color = DestroyOnDisconnect ? Color.white : Color.gray; if (GUI.Button(destroyOnDisconnectField, "Destroy On Disconnect")) { DestroyOnDisconnect = !DestroyOnDisconnect; } GUI.color = Color.white; GUI.color = TeleportToInitialPositions ? Color.white : Color.gray; if (GUI.Button(teleportToInitialPositionField, "Teleport To Initial Position")) { TeleportToInitialPositions = !TeleportToInitialPositions; } GUI.color = Color.white; if (_prevTex != _activeTex) { _prevTex = _activeTex; window.Repaint(); } }
public static void RepaintIfUndoOrRedo(Editor editor) { if (Event.current.type == EventType.ValidateCommand) { if (Event.current.commandName == "UndoRedoPerformed") { editor.Repaint(); } } }
public static void Enable(Editor inspector) { var inspectorRect = new Rect(0, 0, Screen.width, Screen.height); if (inspectorRect.Contains(Event.current.mousePosition)) { inspector.Repaint(); } _layoutOrigins = new Stack<Vector2>(); _layoutOrigins.Push(EditorGUILayout.GetControlRect().position); TotalInspectorSpacing = 0; }
public static void DrawSelectedKnot( Bezier3DSplineData splineData, Action <IReadOnly3DSplineData> onUpdateSpline, UnityEditor.Editor editorWindow, Transform transform = null) { var knot = splineData.GetKnot(CurveEditorState.SelectedKnotIndex); Handles.color = Color.green; var knotWorldPos = transform == null ? knot.position : transform.TransformPoint(knot.position); if (knot.rotation.HasValue) { Handles.color = Handles.yAxisColor; var rot = knot.rotation.Value; Handles.ArrowHandleCap( 0, knotWorldPos, rot * Quaternion.AngleAxis(90, Vector3.left), 0.15f, EventType.Repaint); } if (Tools.current == Tool.Move) { //Position handle using (var changeCheck = new EditorGUI.ChangeCheckScope()) { knotWorldPos = Handles.PositionHandle(knotWorldPos, Tools.handleRotation); if (changeCheck.changed) { Undo.RecordObject(splineData, "Edit Bezier Point"); knot.position = transform == null ? knotWorldPos : transform.InverseTransformPoint(knotWorldPos); splineData.SetKnot(CurveEditorState.SelectedKnotIndex, knot); onUpdateSpline?.Invoke(splineData); editorWindow.Repaint(); } } Handles.color = Color.white; //In Handle if (knot.handleIn != Vector3.zero) { using (var changeCheck = new EditorGUI.ChangeCheckScope()) { var inHandleWorldPos = transform == null ? knot.position + knot.handleIn : transform.TransformPoint(knot.position + knot.handleIn); inHandleWorldPos = Handles.PositionHandle(inHandleWorldPos, Tools.handleRotation); if (changeCheck.changed) { Undo.RecordObject(splineData, "Edit Bezier Handle"); knot.handleIn = transform == null ? inHandleWorldPos - knot.position : transform.InverseTransformPoint(inHandleWorldPos) - knot.position; knot.auto = 0; if (CurvePreferences.ShouldMirrorHandleMovement) { knot.handleOut = -knot.handleIn; } splineData.SetKnot(CurveEditorState.SelectedKnotIndex, knot); onUpdateSpline?.Invoke(splineData); editorWindow.Repaint(); } Handles.DrawLine(knotWorldPos, inHandleWorldPos); } } //outHandle if (knot.handleOut != Vector3.zero) { using (var changeCheck = new EditorGUI.ChangeCheckScope()) { var outHandleWorldPos = transform == null ? knot.position + knot.handleOut : transform.TransformPoint(knot.position + knot.handleOut); outHandleWorldPos = Handles.PositionHandle(outHandleWorldPos, Tools.handleRotation); if (changeCheck.changed) { Undo.RecordObject(splineData, "Edit Bezier Handle"); knot.handleOut = transform == null ? outHandleWorldPos - knot.position : transform.InverseTransformPoint(outHandleWorldPos) - knot.position; knot.auto = 0; if (CurvePreferences.ShouldMirrorHandleMovement) { knot.handleIn = -knot.handleOut; } splineData.SetKnot(CurveEditorState.SelectedKnotIndex, knot); onUpdateSpline?.Invoke(splineData); editorWindow.Repaint(); } Handles.DrawLine(knotWorldPos, outHandleWorldPos); } } } else if (Tools.current == Tool.Rotate) { //Rotation handle using (var changeCheck = new EditorGUI.ChangeCheckScope()) { var rot = (knot.rotation.HasValue ? knot.rotation.Value : Quaternion.identity).normalized; rot = Handles.RotationHandle(rot, knotWorldPos); if (changeCheck.changed) { Undo.RecordObject(splineData, "Edit Bezier Point"); knot.rotation = rot; splineData.SetKnot(CurveEditorState.SelectedKnotIndex, knot); onUpdateSpline?.Invoke(splineData); editorWindow.Repaint(); } } } }
public void SelectNode(Node node) { // Valid selection, but BTAsset is not selected in the project view, queue selection if (node != null && Selection.activeObject != btAsset) { QueuedSelectionFor = btAsset; QueuedSelectionGUID = node.GUID; Selection.activeObject = btAsset; return; } selectedNode = node; // Node is null, deselecting if (node == null && btInspector != null) { nodeInspector = null; btInspector.Repaint (); return; } // Node selected Editor newInspector = Editor.CreateEditor (node); if (newInspector != null) { nodeInspector = newInspector; nodeInspector.Repaint (); return; } }