Ejemplo n.º 1
0
    void TryPickupItemOnGroundOnMouseUp()
    {
        bool isOverUI = UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject();

        if (isOverUI)
        {
            return;
        }

        RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Mouse.current.position.ReadValue()), Vector2.zero, 0, UnityConstants.Layers.ItemsOnGroundMask);

        if (
            hit.collider != null &&
            ((Vector3)hit.point - GameManager.Instance.player.mover.transform.position).sqrMagnitude <= GameManager.Instance.player.maxInteractDistanceSqr &&
            hit.collider.GetComponent <ItemOnGround>() == buttonDownItem
            )
        {
            ItemData leftItem = GameManager.Instance.player.inventory.AddItem(buttonDownItem.item);

            if (leftItem.count == 0)
            {
                Destroy(buttonDownItem.gameObject);
            }
            else
            {
                //TODO: Inventory full popup text
                buttonDownItem.item = leftItem;
                buttonDownItem.Init();
            }
        }

        buttonDownItem = null;
    }
Ejemplo n.º 2
0
    static public ItemOnGround CreateOnGround(ItemData item, Vector3 pos)
    {
        pos.z = 0;

        ItemOnGround groundItem = Instantiate(GameManager.Instance.GetItemOnGround(item.itemSO.type), pos, Quaternion.identity, null).GetComponent <ItemOnGround>();

        groundItem.item.count = item.count;
        groundItem.Init();

        return(groundItem);
    }