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();
            }
        }
Beispiel #3
0
 public void Init(vThirdPersonController cc)
 {
     cc.onDead.AddListener(OnDead);
     cc.onReceiveDamage.AddListener(EnableDamageSprite);
     damageImage.color = new Color(0f, 0f, 0f, 0f);
 }