//creates an instance that holds the data object public bool createPickUp(Pickup pickup) { //get the pickup info from library ItemInfo info = new ItemInfo(); if (!itemLibrary.getItemInfo (info, pickup.item.id)) { Debug.Log("Oh Noo Mr Billlll"); return false; } Transform oPickup = PoolManager.Pools["drops"].Spawn(pickupPrefab, pickup.getPosition(), pickup.thisRotation); oPickup.GetComponent<MeshFilter>().mesh = info.mesh; oPickup.GetComponent<MeshCollider> ().sharedMesh = info.mesh; oPickup.GetComponent<MeshRenderer> ().material = info.material; //okay, we kinda need to populate the new object with the pickup data... pickUpScript sPickup = oPickup.GetComponent("pickUpScript") as pickUpScript; if (sPickup.pickup.copyPickup (pickup)) { return true; } else return false; }