Пример #1
0
    private void SelectItems()
    {
        Ray          ray    = new Ray(this.transform.position, lookDirection.normalized * character.GetInteractionRange());
        RaycastHit2D hitBox = Physics2D.CircleCast(ray.GetPoint(character.GetInteractionRange() / 2), character.GetInteractionRange() / 2, lookDirection.normalized, character.GetInteractionRange(), interactionLayer);

        if (hitBox)
        {
            ISelectable target = hitBox.collider.gameObject.GetComponentInParent <ISelectable>();
            if (target != null)
            {
                selectedItem = target.Select(this.gameObject);
                if (prevSelectedItem != selectedItem)
                {
                    if (prevSelectedItem != null)
                    {
                        prevSelectedItem.Unselect(this.gameObject);
                    }
                    prevSelectedItem = selectedItem;
                }
            }
        }
        else
        {
            if (prevSelectedItem != null)
            {
                prevSelectedItem.Unselect(this.gameObject);
            }
        }
    }