예제 #1
0
        private void OnDrawGizmos()
        {
            if (Application.isPlaying)
            {
                return;
            }

            if (gameObject == UnityEditor.Selection.activeGameObject)
            {
                Gizmos.color = Color.cyan;
                Transform relativeTo = null;
                switch (pivotDirectionOrient)
                {
                case ConnectorOrientType.OrientToCamera:
                    relativeTo = CameraCache.Main.transform;
                    break;

                case ConnectorOrientType.OrientToObject:
                    relativeTo = (anchor != null) ? anchor.transform : transform;
                    break;
                }
                if (pivotMode == ConnectorPivotModeType.Automatic)
                {
                    Vector3 targetPosition  = (anchor != null) ? anchor.transform.position : transform.position;
                    Vector3 toolTipPosition = targetPosition + ToolTipConnector.GetDirectionFromPivotDirection(
                        pivotDirection,
                        manualPivotDirection,
                        relativeTo) * pivotDistance;
                    Gizmos.DrawLine(targetPosition, toolTipPosition);
                    Gizmos.DrawWireCube(toolTipPosition, Vector3.one * 0.05f);
                }
                else
                {
                    Vector3 targetPosition  = (anchor != null) ? anchor.transform.position : transform.position;
                    Vector3 toolTipPosition = transform.TransformPoint(manualPivotLocalPosition);
                    Gizmos.DrawLine(targetPosition, toolTipPosition);
                    Gizmos.DrawWireCube(toolTipPosition, Vector3.one * 0.05f);
                }
            }
        }
예제 #2
0
        private void OnDrawGizmos()
        {
            if (Application.isPlaying)
            {
                return;
            }

            if (toolTipPrefab == null)
            {
                return;
            }

            if (gameObject == UnityEditor.Selection.activeGameObject)
            {
                Gizmos.color = Color.cyan;
                Transform relativeTo = null;

                ConnectorFollowType     followType           = this.followType;
                ConnectorOrientType     pivotDirectionOrient = this.pivotDirectionOrient;
                ConnectorPivotDirection pivotDirection       = this.pivotDirection;
                ConnectorPivotMode      pivotMode            = this.pivotMode;
                Vector3 manualPivotDirection     = this.manualPivotDirection;
                Vector3 manualPivotLocalPosition = this.manualPivotLocalPosition;
                float   pivotDistance            = this.pivotDistance;

                switch (settingsMode)
                {
                case SettingsMode.UseDefaults:
                    ToolTipConnector connector = toolTipPrefab.GetComponent <ToolTipConnector>();
                    followType               = connector.ConnectorFollowingType;
                    pivotDirectionOrient     = connector.PivotDirectionOrient;
                    pivotDirection           = connector.PivotDirection;
                    pivotMode                = connector.PivotMode;
                    manualPivotDirection     = connector.ManualPivotDirection;
                    manualPivotLocalPosition = connector.ManualPivotLocalPosition;
                    pivotDistance            = connector.PivotDistance;
                    break;
                }

                switch (pivotDirectionOrient)
                {
                case ConnectorOrientType.OrientToCamera:
                    relativeTo = CameraCache.Main.transform;
                    break;

                case ConnectorOrientType.OrientToObject:
                    relativeTo = (anchor != null) ? anchor.transform : transform;
                    break;
                }

                Vector3 targetPosition = (anchor != null) ? anchor.transform.position : transform.position;

                switch (followType)
                {
                case ConnectorFollowType.AnchorOnly:
                    Gizmos.DrawLine(targetPosition, transform.TransformPoint(manualPivotLocalPosition));
                    Gizmos.DrawWireCube(transform.TransformPoint(manualPivotLocalPosition), Vector3.one * 0.05f);
                    break;

                case ConnectorFollowType.Position:
                case ConnectorFollowType.PositionAndXYRotation:
                case ConnectorFollowType.PositionAndYRotation:
                    if (pivotMode == ConnectorPivotMode.Automatic)
                    {
                        Vector3 toolTipPosition = targetPosition + ToolTipConnector.GetDirectionFromPivotDirection(
                            pivotDirection,
                            manualPivotDirection,
                            relativeTo) * pivotDistance;
                        Gizmos.DrawLine(targetPosition, toolTipPosition);
                        Gizmos.DrawWireCube(toolTipPosition, Vector3.one * 0.05f);
                    }
                    else
                    {
                        Vector3 toolTipPosition = transform.TransformPoint(manualPivotLocalPosition);
                        Gizmos.DrawLine(targetPosition, toolTipPosition);
                        Gizmos.DrawWireCube(toolTipPosition, Vector3.one * 0.05f);
                    }
                    break;
                }
            }
        }