public IEnumerator StartTeleport()
    {
        PlayTeleportInSFX();
        // Change alpha value to 0
        StartCoroutine(MainPlayer.AlphaFade());

        // Start teleport effect on new location
        fxTeleport = Instantiate(teleportEffect, MainPlayer.teleportTarget, transform.rotation);

        // Dissepear on current location
        SkinnedMeshRenderer[] body = GetComponentsInChildren <SkinnedMeshRenderer>();
        foreach (SkinnedMeshRenderer i in body)
        {
            i.enabled = false;
        }

        // Delay in teleport
        yield return(new WaitForSeconds(teleportDelay));

        // Appear in new location
        foreach (SkinnedMeshRenderer i in body)
        {
            i.enabled = true;
        }

        // Set new position
        gameObject.transform.position = MainPlayer.teleportTarget;

        // Change alpha value to 1
        StartCoroutine(MainPlayer.AlphaFade(1));

        MainPlayer.CurrentState = MainPlayer.State.Idle;
        doTeleport = false;
        PlayTeleportOutSFX();
    }