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; }
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); }