void UpdateLoot() { Vector2 pos = transform.position; var colliders = Physics2D.OverlapCircleAll(pos, m_lootDistance * PlayerStats.Instance().GetStatValue("LootDistanceMultiplier")); DropItem bestItem = null; float bestDistance = float.MaxValue; for (int i = 0; i < colliders.Length; i++) { var item = colliders[i].GetComponent <DropItem>(); if (item == null || item.autoloot) { continue; } Vector2 itemPos = item.transform.position; float distance = (itemPos - pos).sqrMagnitude; if (distance < bestDistance) { bestDistance = distance; bestItem = item; } } float currentItemDist = float.MaxValue; if (m_currentLoot != null) { Vector2 currentItemPos = m_currentLoot.transform.position; currentItemDist = (currentItemPos - pos).sqrMagnitude; if (currentItemDist > m_lootDistance) { m_currentLoot.HideTooltip(); m_currentLoot = null; currentItemDist = float.MaxValue; } } if (bestDistance < currentItemDist) { if (m_currentLoot != null) { m_currentLoot.HideTooltip(); m_currentLoot = null; } m_currentLoot = bestItem; m_currentLoot.ShowTooltip(); } if (Input.GetButtonDown(pickupButton) && m_currentLoot != null) { m_currentLoot.HideTooltip(); PickubLoot(m_currentLoot); m_currentLoot = null; } }