Пример #1
0
    void MovableNodeHighlightingAtMouseCursor()
    {
        Vector3 worldMousePos = nodeCamera.ScreenToWorldPoint(Input.mousePosition);

        Collider2D[] overlapColls = Physics2D.OverlapPointAll(worldMousePos);
        Collider2D   target       = null;

        //ArrowInput,ArrowOutput 우선처리, 없다면 가장 마지막의 것을 채택
        foreach (Collider2D coll in overlapColls)
        {
            NewEdge newEdge = coll.GetComponent <NewEdge>();
            if (newEdge != null)
            {
                target = coll;
                break;
            }
            IMovable movableCode = coll.GetComponent <IMovable>();
            if (movableCode != null)
            {
                target = coll;
                break;
            }
        }

        if (target == null)
        {
            frameHighlighting.gameObject.SetActive(false);
        }
        else
        {
            NewEdge isEdge = target.GetComponent <NewEdge>();
            if (isEdge == null)
            {
                frameHighlighting.gameObject.SetActive(true);
                frameHighlighting.targetTr = target.transform;
            }
            //연결중인 엣지는 하이리팅하지않음.
            else if (!isEdge.endTarget.Equals(transform))
            {
                isEdge.Highlighting();
            }
        }
    }