IEnumerator PrintPart(GameObject shipModule) { foreach (ParticleSystem particleSystem in printParticles) { particleSystem.Play(); } yield return(new WaitForSeconds(0.2f)); newPart = Instantiate(shipModule, printPoint.position, printPoint.rotation).GetComponent <ShipModule>(); SceneManager.instance.AddGravityBody(newPart.GetComponent <Rigidbody>()); newPart.Dematerialize(PartPrinterData.instance.printMaterial); meshRenderer = newPart.GetComponent <MeshRenderer>(); SetPartOpacity(partOpacity); yield return(new WaitForSeconds(PartPrinterData.instance.printTime)); foreach (ParticleSystem particleSystem in printParticles) { particleSystem.Stop(); } yield return(new WaitForSeconds(0.2f)); newPart.Materialize(); newPart = null; partOpacity = 0f; }