public void ReleasePickup(OldModule first) { //GameObject newPickup = Instantiate (pickup); CtrlDrag script = pickup.GetComponent <CtrlDrag> (); pickup.transform.position = parentObject.transform.TransformPoint(new Vector3(gridLocation [0], gridLocation [1], 0)); pickup.transform.localEulerAngles = new Vector3(0, 0, parentObject.transform.eulerAngles.z + gridRotation * 90 - 90); pickup.SetActive(true); if (first == this) { script.PickUp(); } else { float force = Mathf.Sqrt(Vector2.SqrMagnitude((gridLocation - first.gridLocation) * 20)); float angle = Conversion.DegToRad(pickup.transform.localEulerAngles.z + 90); pickup.GetComponent <Rigidbody2D> ().AddForce(new Vector2(Mathf.Cos(angle), Mathf.Sin(angle) * -1) * force); } }