Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
0
    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);
        }
    }