Ejemplo n.º 1
0
    public void UpdateInteraction()
    {
        CreateRay(go =>
        {
            if (go != null)
            {
                if (!_isOver)
                {
                    _isOver = true;
                    _interaction.OnMouseEnter(go, hit.point);
                }
                else
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        _interaction.OnMouseClick(go, hit.point);
                    }
                    else
                    {
                        _interaction.OnMouseOver(go, hit.point);
                    }
                }
            }
            else if (_isOver)
            {
                _isOver = false;
                _interaction.OnMouseExit();
            }
        });

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            CancelInteraction();
        }
    }
Ejemplo n.º 2
0
    public void UpdateInteraction()
    {
        int layerMask = 1 << _interaction.GetLayer();

        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
        {
            if (!_isOver)
            {
                _isOver = true;
                _interaction.OnMouseEnter(hit.point);
            }
            else
            {
                if (Input.GetMouseButtonDown(0))
                {
                    _interaction.OnMouseClick(hit.point);
                }
                else
                {
                    _interaction.OnMouseOver(hit.point);
                }
            }
        }
        else if (_isOver)
        {
            _isOver = false;
            _interaction.OnMouseExit();
        }


        if (Input.GetKeyDown(KeyCode.Escape))
        {
            CancelInteraction();
        }
    }