private void PickUp() { RaycastHit hitInfo; // Raycast from the center of the screen two units forward if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hitInfo, 2)) { Pickup pickup = hitInfo.transform.GetComponentInParent <Pickup>(); if (pickup != null && !pickup.isMeal) { if (!new List <Pickup>(ammoRemaining.Keys).Contains(pickup)) { ammoRemaining.Add(pickup.Copy(), 1); // pickup.Copy? } ammoRemaining[pickup.Copy()] = 1; // pickup.Copy? ammoOrder[0] = pickup.Copy(); // pickup.Copy? GameObject pickupObj = pickup.GrabPickup(); if (pickupObj != null) { heldObject = GameObject.Instantiate(pickupObj, pickupSpawn); holdingItem = true; } } } }