IEnumerator RightFloorText() { PlaceInfoUI placeUI = FindObjectOfType <PlaceInfoUI>(); placeUI.TextOn(InfoText); yield return(StartCoroutine(placeUI.TextFadeInRoutine())); yield return(new WaitForSeconds(1.0f)); yield return(StartCoroutine(placeUI.TextFadeOutRoutine())); yield break; }
// 계단 이동시 시행될 전체 업데이트 private IEnumerator StairMoveTeleport() { Animator animator = TeleportCharacter.GetComponent <Animator>(); // 캐릭터 애니메이터 걷기 세팅 animator.SetBool("IsWalk", true); Vector2 desCoord; desCoord.x = this.transform.position.x; desCoord.y = TeleportCharacter.transform.position.y; // 캐릭터 방향 설정 Vector3 dirVec; if (TeleportCharacter.transform.position.x < this.transform.position.x) { dirVec = new Vector3(-1, 1, 1); } else { dirVec = new Vector3(1, 1, 1); } while (true) { // 캐릭터 좌표 이동. 1.0f의 속도로. TeleportCharacter.transform.position = Vector2.MoveTowards(TeleportCharacter.transform.position, desCoord, 0.5f * Time.deltaTime); TeleportCharacter.transform.localScale = dirVec; characterMover.Icon.transform.localScale = new Vector3(dirVec.x, 1, 1); // 도착시 if (TeleportCharacter.transform.position.x == this.transform.position.x) { // 애니메이터 뒷모습으로 전환 animator.SetBool("IsWalk", false); animator.SetBool("IsDoorIn", true); // 1.5초 뒤 이동, 이동타입 회복, 뷰포트전환 yield return(new WaitForSeconds(1.0f)); //TeleportCharacter.SetActive(false); // ★ TeleportCharacter.GetComponent <SpriteRenderer>().enabled = false; yield return(new WaitForSeconds(0.5f)); // 카메라슬로우 무브 상태로 세팅한 후 cameraSystem.SetSlowMove(Destination.transform.position.x, Destination.transform.position.y); PlaceInfoUI placeUI = FindObjectOfType <PlaceInfoUI>(); placeUI.TextOn(InfoText); yield return(StartCoroutine(placeUI.TextFadeInRoutine())); // 코루틴 내부의 코루틴 생명주기 파악 필요함 yield return(StartCoroutine("CamWaitTeleport")); // 애니메이터 IDLE로 회복 animator.SetBool("IsDoorIn", false); animator.SetBool("IsWalk", true); yield return(new WaitForSeconds(1.0f)); yield return(StartCoroutine(placeUI.TextFadeOutRoutine())); //yield return StartCoroutine(FindObjectOfType<PlaceInfoUI>().TextFadeRoutine(InfoText)); yield break; } yield return(null); } }