예제 #1
0
    private GridObject GetSelectableObject(Touch touch)
    {
        var  touchPosRay = _mainCam.ScreenPointToRay(touch.position);
        bool hasHit      = Physics.Raycast(touchPosRay, out var hit, selectableLayer);

        if (hasHit)
        {
            if (_selectedObj != null)
            {
                if (hit.transform.CompareTag("LeftRotator"))
                {
                    _selectedObj.RotateLeft();
                    return(_selectedObj);
                }

                if (hit.transform.CompareTag("RightRotator"))
                {
                    _selectedObj.RotateRight();
                    return(_selectedObj);
                }

                _selectedObj.Deselect();
                _selectedObj = null;
            }

            var moveObj = hit.transform.parent.GetComponent <GridObject>();

            if (moveObj.isSelectable)
            {
                return(moveObj);
            }
        }

        return(null);
    }