/// <summary> /// MoveCharacter에서 값을 받아 움직임 /// </summary> /// <param name="end"></param> /// <returns></returns> private IEnumerator SmoothMovement(Vector3 end, float aniTime) { // 움직임이 있을 때 다시 입력이 들어오면 리턴 //if (InputManager.Instance.IsMoved == true) //{ // yield break; //} inputManager.IsMoved = true; inputManager.IsBakeMoved = true; float timer = aniTime; float cooltime = 0f; //자신의 위치 값에 받은 end값을 더 함 Vector3 starPos = this.transform.position; starPos = FloatRound(starPos); print("starPos : " + starPos); Vector3 endPos = starPos + end; endPos = FloatRound(endPos); print("endPos : " + endPos); //만약 데미지 값이 있다면 if (aniTime == 0.3f) { animator.SetTrigger("DAMAGE"); } //포톤 처리 if (PhotonNetwork.connected && photonView.isMine) { //카메라 셋팅 Camera.main.GetComponent <Camerafollow>().OriginPosition(endPos); } while (cooltime < timer) { cooltime += Time.deltaTime; this.transform.position = Vector3.Lerp(starPos, endPos, cooltime / timer); yield return(null); } //캐릭터 움직임 마무리 transform.position = endPos; inputManager.IsMoved = false; inputManager.IsBakeMoved = false; gameManager.ScoreUp(); if (PhotonNetwork.connected && PhotonNetwork.isMasterClient) { print("Master"); //로드 제네레이터의 플레이어 함수를 찾는다 roadGenerator.FindPlayer(); } }