Repaint() public méthode

Repaint any inspectors that shows this editor.

public Repaint ( ) : void
Résultat void
Exemple #1
0
        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();
            }
        }
Exemple #2
0
        private static void Repaint()
        {
            if (editor != null)
            {
                editor.Repaint();
            }

            //else if (_editorWindow != null) _editorWindow.Repaint();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
                }
            }
        }
Exemple #5
0
    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();
         }
     }
 }
Exemple #12
0
        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;
        }
Exemple #13
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();
                    }
                }
            }
        }
Exemple #14
0
        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;
            }
        }