public override void OnDragAnchor()
            {
                Ray ray = _connectionCreator._camera.ScreenPointToRay(Input.mousePosition);

                RaycastHit hit;

                if (Physics.Raycast(ray, out hit))
                {
                    ConnectionAnchor overedAnchor = hit.collider.GetComponent <ConnectionAnchor>();
                    if (overedAnchor != null && _connectionCreator._overedAnchor != overedAnchor && overedAnchor != _connectionCreator._activeAnchor)
                    {
                        overedAnchor.SetActive();
                        _connectionCreator._overedAnchor?.SetPossible();
                        _connectionCreator._overedAnchor = overedAnchor;
                    }
                    else if (overedAnchor == null && _connectionCreator._overedAnchor != null)
                    {
                        _connectionCreator._overedAnchor.SetPossible();
                        _connectionCreator._overedAnchor = null;
                    }
                }

                float enter;

                if (_connectionCreator._plane.Raycast(ray, out enter))
                {
                    Vector3 hitPoint = ray.GetPoint(enter);
                    _connectionCreator._mouseTransform.position = hitPoint;
                }
            }
 protected void ActivateAnchor(ConnectionAnchor connectionAnchor)
 {
     foreach (ConnectionAnchor anchor in _connectionAnchors)
     {
         anchor.SetPossible();
     }
     connectionAnchor.SetActive();
     _activeAnchor = connectionAnchor;
 }