void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode) { if (currentController.currentHealth > 0) { return; } OnReloadGame.Invoke(); var player = GameObject.FindObjectOfType <vThirdPersonController>(); if (player) { currentPlayer = player.gameObject; currentController = player; player.onDead.AddListener(OnCharacterDead); } else if (currentPlayer == null && playerPrefab != null && spawnPoint != null) { Spawn(spawnPoint); } }
public IEnumerator Spawn() { yield return(new WaitForSeconds(respawnTimer)); if (playerPrefab != null && spawnPoint != null) { if (oldPlayer != null && destroyBodyAfterDead) { Destroy(oldPlayer); } else { DestroyPlayerComponents(oldPlayer); } yield return(new WaitForEndOfFrame()); currentPlayer = Instantiate(playerPrefab, spawnPoint.position, spawnPoint.rotation) as GameObject; currentController = currentPlayer.GetComponent <vThirdPersonController>(); currentController.onDead.AddListener(OnCharacterDead); OnReloadGame.Invoke(); } }
public void Init(vThirdPersonController cc) { cc.onDead.AddListener(OnDead); cc.onReceiveDamage.AddListener(EnableDamageSprite); damageImage.color = new Color(0f, 0f, 0f, 0f); }