// 문 이동시 시행될 전체 업데이트. 구형모델. TotalMove로 개선 private IEnumerator DoorMoveTeleport() { //Animator animator = TeleportCharacter.GetComponent<Animator>(); // 캐릭터 애니메이터 걷기 세팅 characterAnimator.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.7f * Time.deltaTime); // 캐릭터 방향은 설정된 방향벡터로 TeleportCharacter.transform.localScale = dirVec; // 도착시 if (TeleportCharacter.transform.position.x == this.transform.position.x) { // 애니메이터 뒷모습으로 전환 characterAnimator.SetBool("IsWalk", false); characterAnimator.SetBool("IsBack", true); // 1.5초 뒤 이동, 이동타입 회복, 뷰포트전환 yield return(new WaitForSeconds(1.5f)); Teleport(); characterMover.moveType = CharacterMover.MoveType.COMMANDMOVE; cameraSystem.changeViewport(); // 애니메이터 IDLE로 회복 characterAnimator.SetBool("IsBack", false); characterAnimator.SetBool("IsWalk", true); yield break; } yield return(null); } }
public IEnumerator LibraryStartEvent() { // 실내에서 시작. 카메라 반전 cameraSystem.changeViewport(); // 플레이어 이동상태 잠금 characterMover.moveType = CharacterMover.MoveType.LOCK; Character.transform.localScale = new Vector3(-1, 1, 1); characterMover.myAnimator.SetBool("IsWalk", false); characterMover.myAnimator.SetBool("IsSit", true); // 페이드 인 효과 objFadeEfx.SetActive(true); FadeEfx.FadeIn(); // 2초 대기 yield return(new WaitForSeconds(2.0f)); // 수진이 플레이어를 부르는 대화 시작 //LibDialogue.TriggerDialogue(); dialogueManager.StartDialogue(Sujin1); yield return(new WaitUntil(() => dialogueManager.canvasObj.activeSelf == false)); dialogueManager.StartDialogue(JinHyung1); yield return(new WaitUntil(() => dialogueManager.canvasObj.activeSelf == false)); dialogueManager.StartDialogue(Sujin2); yield return(new WaitUntil(() => dialogueManager.canvasObj.activeSelf == false)); dialogueManager.StartDialogue(JinHyung2); yield return(new WaitUntil(() => dialogueManager.canvasObj.activeSelf == false)); // 페이드 아웃 인 FadeEfx.FadeOut(); characterMover.myAnimator.SetBool("IsSit", false); yield return(new WaitForSeconds(1.2f)); FadeEfx.FadeIn(); // 튜토리얼 패널 좌우 활성화 + 설명 다이얼로그 출력 tutorialPanel.OnLeftRight(); // 폰트 색 시스템 메시지 색상으로 변경 dialogueManager.textTalker.color = new Color(0.2f, 0.6f, 1); dialogueManager.textSentence.color = new Color(0.2f, 0.6f, 1); dialogueManager.textSentence.alignment = TextAnchor.UpperCenter; LibDialogue2.TriggerDialogue(); yield return(new WaitUntil(() => dialogueManager.canvasObj.activeSelf == false)); FindObjectOfType <Note>().AddMission("GoToRest"); tutorialPanel.OffLeftRight(); dialogueManager.textTalker.color = new Color(1, 1, 1); dialogueManager.textSentence.color = new Color(1, 1, 1); dialogueManager.textSentence.alignment = TextAnchor.UpperLeft; characterMover.moveType = CharacterMover.MoveType.COMMANDMOVE; yield break; }