IEnumerator SpawnNewHydrogenInteractableCorutine(HydrogenInteractableType type, float delay) { yield return(new WaitForSeconds(delay)); Vector3 spawnPos = transform.position; HydrogenInteractable interactable; switch (type) { case HydrogenInteractableType.LargeFilter: interactable = Instantiate(largeFilterPrefab, spawnPos, Quaternion.identity).GetComponent <HydrogenInteractable>(); interactable.onHydrogenInteractableDestroyed.AddListener(OnInteractableDestroyed); break; case HydrogenInteractableType.SmallFilter: interactable = Instantiate(smallFilterPrefab, spawnPos, Quaternion.identity).GetComponent <HydrogenInteractable>(); interactable.onHydrogenInteractableDestroyed.AddListener(OnInteractableDestroyed); break; case HydrogenInteractableType.GunModule: interactable = Instantiate(gunModulePrefab, spawnPos, Quaternion.identity).GetComponent <HydrogenInteractable>(); interactable.onHydrogenInteractableDestroyed.AddListener(OnInteractableDestroyed); break; case HydrogenInteractableType.InstructionsClipboard: Instantiate(instructionsClipboard, spawnPos, Quaternion.identity); break; case HydrogenInteractableType.PlayAgainClipboard: var button = Instantiate(playAgainClipboard, spawnPos, Quaternion.identity).GetComponentInChildren <ClipboardButton>(); button.onClicked.AddListener(Restart); break; } HL.AudioManagement.AudioManager.Instance.PlayIn3D(spawnSound, 1f, spawnPos, 1f, 10f); }
public void SpawnNewHydrogenInteractable(HydrogenInteractableType type, float delay = 1f) => StartCoroutine(SpawnNewHydrogenInteractableCorutine(type, delay));