void Start() { /* Initialize Components */ player = PlayerMovement.instance; sound = SoundManager.instance; transition = TransitionManager.instance; /* Set Current Area as Active and Play Song */ activeArea.SetState(true); StartCoroutine(sound.PlayMusic(activeArea.music)); }
IEnumerator StartTransition(GameObject warpTile) { /* Screen Fade Out */ yield return(StartCoroutine(transition.PlayTransition(Effect.fadeOut, 2f))); /* Get Warp Area */ Transform tmpT = warpTile.transform.parent; while (tmpT.tag != "Area") { tmpT = tmpT.parent; } AreaHandler warpArea = tmpT.GetComponent <AreaHandler>(); /* Deactive Old Area */ activeArea.SetState(false); /* Activate New Area */ warpArea.SetState(true); /* Update Active Area */ activeArea = warpArea; /* Play New Song */ StartCoroutine(sound.PlayMusic(activeArea.music)); /* If Tile is A Door */ if (warpTile.tag == "Door") { /* Transport Player */ player.transform.position = new Vector2(warpTile.transform.position.x, warpTile.transform.position.y + 0.04f); /* Screen Fade In */ yield return(StartCoroutine(transition.PlayTransition(Effect.fadeIn, 2f))); /* Exit Door */ yield return(StartCoroutine(warpTile.GetComponent <DoorHandler>().ExitDoor())); } /* If Tile is Stairs */ else if (warpTile.tag == "Stairs") { /* Transport Player */ player.transform.position = warpTile.transform.position; /* Get DoorHandler Component */ DoorHandler door = warpTile.GetComponent <DoorHandler>(); /* Screen Fade In */ yield return(StartCoroutine(transition.PlayTransition(Effect.fadeIn, 2f))); /* Exit Stairs */ yield return(StartCoroutine(warpTile.GetComponent <StairsHandler>().ExitStairs())); } /* Else (Tile is NOT a Door), Just Trasnport and Screen Fade In */ else { player.transform.position = new Vector2(warpTile.transform.position.x, warpTile.transform.position.y + 0.08f); yield return(StartCoroutine(transition.PlayTransition(Effect.fadeIn, 2f))); } /* Return Controller To Player */ player.isControllable = true; }