コード例 #1
0
    public virtual bool OnPointerPositionChange(Vector2 pos, Vector2 delta)
    {
        if (decorator != null)
        {
            decorator.OnPointerPositionChange(pos, delta);
        }

        return(false);
    }
コード例 #2
0
    protected virtual bool OnPointerPositionChange(Vector2 pos, Vector2 delta)
    {
        if (!inFocus)
        {
            return(false);
        }

        PointerEventData pointerData = new PointerEventData(MenuManager.Instance.eventSystem);

        pointerData.position = pos;

        List <RaycastResult> results = new List <RaycastResult>();

        raycaster.Raycast(pointerData, results);

        foreach (RaycastResult result in results)
        {
            MenuControl[] controls = result.gameObject.GetComponents <MenuControl>();
            foreach (MenuControl control in controls)
            {
                if (!control.GetType().IsSubclassOf(typeof(MenuControlDecorator)))
                {
                    if (control.OnPointerPositionChange(pos, delta, this))
                    {
                        return(true);
                    }
                    else if (selectedItem != control)
                    {
                        selectedItemCord = control.menuItemCord;
                        return(true);
                    }
                }
            }
        }

        if (decorator != null)
        {
            decorator.OnPointerPositionChange(pos, delta);
        }

        return(false);
    }