public IEnumerator RespawnPlayer() { isRespawning = true; yield return(new WaitForSeconds(m_SpawnDelay)); GameObject cloneappear = (GameObject)Instantiate(Resources.Load("Prefabs\\AppearPlayer")); cloneappear.transform.position = m_SpawnPoint.transform.position + new Vector3(0f, 0.5f, 0f); cloneappear.name = "AppearPlayer"; Camera2DFollow cameraFollow = Camera.main.GetComponentInParent <Camera2DFollow>(); if (cameraFollow != null) { cameraFollow.target = cloneappear.transform; } gm.StartCoroutine(cameraFollow.DampingShutOff(0.1f)); yield return(new WaitForSeconds(m_AppearDelay)); Destroy(cloneappear); GameObject clone = (GameObject)Instantiate(Resources.Load("Prefabs\\Player")); clone.transform.position = m_SpawnPoint.transform.position + new Vector3(0f, 0.5f, 0f); clone.name = "Player"; if (!gm.m_IntroSceneEnded) { clone.GetComponentInChildren <PlayerSpit>().IsSpittingAllowed = false; } cameraFollow.target = clone.transform; if (OnPlayerRespawn != null) { OnPlayerRespawn(); // called to relink the statusindicator in the new player instance } isRespawning = false; }
private IEnumerator TemporaryFocus(Transform target, float delay) { m_IsFocusing = true; Transform oldTarget = m_CameraFollow.target; m_CameraFollow.target = target; if (m_DampingShutOff) { StartCoroutine(m_CameraFollow.DampingShutOff(m_FocusDuration)); } yield return(new WaitForSeconds(delay)); m_CameraFollow.target = oldTarget; m_IsFocusing = false; if (m_FocusDuration > m_SpeedFreezeDuration) { Destroy(this.gameObject); } }