public static EdgeView Create(GameObject _newTarget, bool _hasWorldIndicator, bool _destroysOnDeath = true)
    {
        EdgeView edgeView = Create(_destroysOnDeath);

        edgeView.SetTarget(_newTarget, _hasWorldIndicator);
        return(edgeView);
    }
    void UpdateObjectiveUI()
    {
        bool hasIndicators = objectives.Count > 0 && curObjectiveId < objectives.Count && curObjective.type != Objective.Type.Kills && curObjective.showsScreenIndicator;

        if (hasIndicators)
        {
            GameObject targetObj = (curObjective.overrideTarget == null) ? curObjective.objectiveObj : curObjective.overrideTarget;
            objectiveEdgeView.SetTarget(targetObj, curObjective.showsWorldIndicator);              //set target
        }

        if (curObjective.type == Objective.Type.Kills)
        {
            Transform targetParent = curObjective.objectiveObj.transform;
            foreach (Transform child in targetParent)
            {
                if (child.name.Contains("Target"))
                {
                    EdgeView.Create(child.gameObject, true);
                }
            }
        }

        if (curObjectiveId < objectives.Count && !string.IsNullOrEmpty(curObjective.helpText))
        {
            NotificationManager.instance.ShowHelp(curObjective.helpText);
        }

        barAnim.SetBool("Open", curObjective.crucialHealth != null);
        if (curObjective.crucialHealth != null)
        {
            if (curObjective.icon != null)
            {
                barIcon.gameObject.SetActive(true);
                barIcon.sprite = curObjective.icon;
            }
            else
            {
                barIcon.gameObject.SetActive(false);
            }
        }
    }