public void AddPathFeature(PathFeature pathFeaturePrefab)
    {
        if (_pathFeature)
        {
            DestroyImmediate(_pathFeature.gameObject);
            _pathFeature = null;
        }
        PathFeature pathFeature = PrefabUtility.InstantiatePrefab(pathFeaturePrefab, transform) as PathFeature;

        _pathFeature = pathFeature;
        pathFeature.SetPosition(this);
    }
    public void Update()
    {
#if UNITY_EDITOR
        //_textYOffset = ((GameObject)PrefabUtility.GetCorrespondingObjectFromSource(gameObject)).transform.localPosition.y;

        if (_lineRenderer && _node1 && _node2)
        {
            _lineRenderer.positionCount = 2;
            _lineRenderer.SetPositions(new Vector3[] { _node1._rectTransform.anchoredPosition, _node2._rectTransform.anchoredPosition });

            Vector2 midPoint = ((_lineRenderer.GetPosition(0) + _lineRenderer.GetPosition(1)) / 2f);
            _movementPointText.transform.position = midPoint + new Vector2(0f, _textYOffset);
            _movementPointText.text = $"{_movementPointCost}";
        }

        // Position Path Feature
        if (_pathFeature)
        {
            _pathFeature.SetPosition(this);
            _nodePathVisuals.SetVisualStateForFeature(_pathFeature);
        }
        //
#endif
    }