From 34df0ec6b71627bfcca3154304b102891a843b96 Mon Sep 17 00:00:00 2001 From: HaeinLEE Date: Fri, 28 Mar 2025 14:58:22 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[Style]=20Points=20=EC=95=A0=EB=8B=88?= =?UTF-8?q?=EB=A9=94=EC=9D=B4=EC=85=98=20=EC=B2=98=EB=A6=AC=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EB=A6=AC=ED=8E=99=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RatingPointsController.cs | 70 ++++++++----------- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/Assets/Script/UI/PanelChildController/RatingPointsController.cs b/Assets/Script/UI/PanelChildController/RatingPointsController.cs index 0897747..122b9bc 100644 --- a/Assets/Script/UI/PanelChildController/RatingPointsController.cs +++ b/Assets/Script/UI/PanelChildController/RatingPointsController.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -19,6 +20,28 @@ public class RatingPointsController : MonoBehaviour private int _oldRequiredScore; private int _newRequiredScore; private int _oldScore; + + /// + /// 포인트 오르고 내려가는 애니메이션 재생 + /// + /// + /// + private void ChangeImageColor(GameObject imageOBject, Color32 color, Action callback = null) + { + Sequence sequence = DOTween.Sequence(); + + sequence.Append( + imageOBject.GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); + sequence.Append( + imageOBject.GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); + sequence.Join( + imageOBject.GetComponent().DOColor(color, flipDuration/2).SetEase(Ease.OutExpo)); + + sequence.OnComplete(()=> + { + callback?.Invoke(); + }); + } public void InitRatingPoints(int oldScore,Enums.GameResult gameResult, int defaultRequiredScore) { // TODO: [인덱스계산 ㅇㅖ외처리 ] 계산한 값 절대값이 defaultRequiredScore보다 큰 경우 return. 근데 이런 값이 나온다는게 이미 계산 오류가 어디서 생긴 것이겠죠..? @@ -28,26 +51,14 @@ public class RatingPointsController : MonoBehaviour { if (gameResult == Enums.GameResult.Win) { - sequence.Append( - plusImage[0].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - plusImage[0].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - plusImage[0].GetComponent().DOColor(_plusColor, flipDuration/2).SetEase(Ease.OutExpo)); - + ChangeImageColor(plusImage[0], _plusColor); //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore-1; } else if(gameResult == Enums.GameResult.Lose) { - sequence.Append( - minusImages[defaultRequiredScore-1].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - minusImages[defaultRequiredScore-1].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - minusImages[defaultRequiredScore-1].GetComponent().DOColor(_minusColor, flipDuration/2).SetEase(Ease.OutExpo)); + ChangeImageColor(minusImages[defaultRequiredScore-1],_minusColor); - //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore+1; } } @@ -60,24 +71,13 @@ public class RatingPointsController : MonoBehaviour } if (gameResult == Enums.GameResult.Win) { - sequence.Append( - plusImage[_oldScore].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - plusImage[_oldScore].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - plusImage[_oldScore].GetComponent().DOColor(_plusColor, flipDuration/2).SetEase(Ease.OutExpo)); + ChangeImageColor(plusImage[_oldScore], _plusColor); - //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore-oldScore-1; } else if(gameResult == Enums.GameResult.Lose) { - sequence.Append( - plusImage[_oldScore-1].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - plusImage[_oldScore-1].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - plusImage[_oldScore-1].GetComponent().DOColor(_defaultColor, flipDuration/2).SetEase(Ease.OutExpo)); + ChangeImageColor(plusImage[_oldScore-1], _defaultColor); //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore-oldScore+1; @@ -93,26 +93,14 @@ public class RatingPointsController : MonoBehaviour } if (gameResult == Enums.GameResult.Win) { - sequence.Append( - minusImages[minusImages.Length+_oldScore].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - minusImages[minusImages.Length+_oldScore].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - minusImages[minusImages.Length+_oldScore].GetComponent().DOColor(_defaultColor, flipDuration/2).SetEase(Ease.OutExpo)); + ChangeImageColor(minusImages[minusImages.Length+_oldScore], _defaultColor); - //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore-oldScore-1; } else if(gameResult == Enums.GameResult.Lose) { - sequence.Append( - minusImages[minusImages.Length+_oldScore-1].GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); - sequence.Append( - minusImages[minusImages.Length+_oldScore-1].GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); - sequence.Join( - minusImages[minusImages.Length+_oldScore-1].GetComponent().DOColor(_minusColor, flipDuration/2).SetEase(Ease.OutExpo)); + ChangeImageColor(minusImages[minusImages.Length+_oldScore-1], _minusColor); - //승급까지 남은 판수 계산 _newRequiredScore = defaultRequiredScore-oldScore+1; } } From c049b4fbf6921abff929de09b45cfa71312e22ce Mon Sep 17 00:00:00 2001 From: HaeinLEE Date: Fri, 28 Mar 2025 15:20:59 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[Refactor]=20=EC=8A=B9=EC=88=98=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0=20=ED=95=A8=EC=88=98=20=EC=9D=B8=EC=9E=90=EC=99=80=20?= =?UTF-8?q?=ED=98=B8=EC=B6=9C=20=ED=83=80=EC=9D=B4=EB=B0=8D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RatingPointsController.cs | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Assets/Script/UI/PanelChildController/RatingPointsController.cs b/Assets/Script/UI/PanelChildController/RatingPointsController.cs index 122b9bc..84967b8 100644 --- a/Assets/Script/UI/PanelChildController/RatingPointsController.cs +++ b/Assets/Script/UI/PanelChildController/RatingPointsController.cs @@ -26,7 +26,7 @@ public class RatingPointsController : MonoBehaviour /// /// /// - private void ChangeImageColor(GameObject imageOBject, Color32 color, Action callback = null) + private void ChangeImageColor(GameObject imageOBject, Color32 color) { Sequence sequence = DOTween.Sequence(); @@ -39,14 +39,14 @@ public class RatingPointsController : MonoBehaviour sequence.OnComplete(()=> { - callback?.Invoke(); + SetScoreCountText(); }); } public void InitRatingPoints(int oldScore,Enums.GameResult gameResult, int defaultRequiredScore) { // TODO: [인덱스계산 ㅇㅖ외처리 ] 계산한 값 절대값이 defaultRequiredScore보다 큰 경우 return. 근데 이런 값이 나온다는게 이미 계산 오류가 어디서 생긴 것이겠죠..? _oldScore = oldScore; - Sequence sequence = DOTween.Sequence(); + _oldRequiredScore = defaultRequiredScore; if (_oldScore == 0) { if (gameResult == Enums.GameResult.Win) @@ -110,32 +110,33 @@ public class RatingPointsController : MonoBehaviour _newRequiredScore = defaultRequiredScore-oldScore; } - SetScoreCountText(_newRequiredScore,defaultRequiredScore); + SetScoreCountText(); } /// /// 승급까지 남은 승수 계산 /// - /// 새로 업데이트 된 승급까지 필요한 승 수 - /// 해당 급수에서 0에서 승급까지 필요한 승수 - private void SetScoreCountText(int scoreCount,int defaultRequiredScore) + /// 새로 업데이트 된 승급까지 필요한 승 수 + /// 해당 급수에서 0에서 승급까지 필요한 승수 + private void SetScoreCountText() { // 남은 승리수가 0인 경우 승급점수 도달 혹은 강등점수 도달 - if (scoreCount == 0 || scoreCount == defaultRequiredScore * 2) + if (_newRequiredScore == 0 || _newRequiredScore == _oldRequiredScore * 2) { + //새로운 급수에 맞춰서 패널 초기화하기 scoreCountText.text = ""; } - else if (scoreCount < 0) + else if (_newRequiredScore < 0) { scoreCountText.text = "더 이상 승급 할 수 없습니다."; } - else if (scoreCount > defaultRequiredScore * 2) + else if (_newRequiredScore > _oldRequiredScore * 2) { scoreCountText.text = "더이상 강등 될 수 없습니다."; } else { - scoreCountText.text = $"{scoreCount} 게임을 승리하면 승급하게 됩니다."; + scoreCountText.text = $"{_newRequiredScore} 게임을 승리하면 승급하게 됩니다."; } } From aa943476dbf6cc02de870fbfc84ce4f993a77cf7 Mon Sep 17 00:00:00 2001 From: HaeinLEE Date: Fri, 28 Mar 2025 17:15:09 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[Style]=20=EC=8A=B9=EA=B8=89,=EA=B0=95?= =?UTF-8?q?=EB=93=B1=20=ED=8F=AC=EC=9D=B8=ED=8A=B8=ED=9A=A8=EA=B3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 휘릭 돌면서 초기화됩니다. --- .../RatingPointsController.cs | 39 ++++++++++++++++--- .../PanelController/RatingPanelController.cs | 9 ++++- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/Assets/Script/UI/PanelChildController/RatingPointsController.cs b/Assets/Script/UI/PanelChildController/RatingPointsController.cs index 84967b8..24483f8 100644 --- a/Assets/Script/UI/PanelChildController/RatingPointsController.cs +++ b/Assets/Script/UI/PanelChildController/RatingPointsController.cs @@ -121,10 +121,13 @@ public class RatingPointsController : MonoBehaviour private void SetScoreCountText() { // 남은 승리수가 0인 경우 승급점수 도달 혹은 강등점수 도달 - if (_newRequiredScore == 0 || _newRequiredScore == _oldRequiredScore * 2) + if (_newRequiredScore == 0) { - //새로운 급수에 맞춰서 패널 초기화하기 - scoreCountText.text = ""; + scoreCountText.text = "승급 포인트에 달성했습니다 !"; + } + else if (_newRequiredScore == _oldRequiredScore * 2) + { + scoreCountText.text = "점수가 낮아 강등됩니다.."; } else if (_newRequiredScore < 0) { @@ -145,8 +148,8 @@ public class RatingPointsController : MonoBehaviour for (int i = 0; i < 10; i++) { plusImage[i].GetComponent().color = _plusColor; - scoreCountText.text = $"더 이상 승급 할 수 없습니다.\n누적 {winCount} 승 하셨습니다."; } + scoreCountText.text = $"더 이상 승급 할 수 없습니다.\n누적 {winCount} 승 하셨습니다."; } public void SetRatingDownLimit(int loseCount) @@ -154,9 +157,35 @@ public class RatingPointsController : MonoBehaviour for (int i = 0; i < 3; i++) { minusImages[i].GetComponent().color = _minusColor; - scoreCountText.text = $"더 이상 강등 될 수 없습니다.\n누적 {loseCount*-1} 패 하셨습니다."; } + scoreCountText.text = $"더 이상 강등 될 수 없습니다.\n누적 {loseCount*-1} 패 하셨습니다."; } //승급, 강등시 패널을 초기화해서 띄워주는 함수 추가 + public void InitRatingUpPoints() + { + StartCoroutine(RatingUpPoints()); + } + + private IEnumerator RatingUpPoints() + { + foreach (var plusPoint in plusImage) + { + ChangeImageColor(plusPoint, _defaultColor); + yield return new WaitForSeconds(0.2f); + } + } + public void InitRatingDownPoints() + { + StartCoroutine(RatingDownPoints()); + } + + private IEnumerator RatingDownPoints() + { + for (int i = minusImages.Length; i >0; i--) + { + ChangeImageColor(minusImages[i-1], _defaultColor); + yield return new WaitForSeconds(0.2f); + } + } } diff --git a/Assets/Script/UI/PanelController/RatingPanelController.cs b/Assets/Script/UI/PanelController/RatingPanelController.cs index ad41db2..abd6ddf 100644 --- a/Assets/Script/UI/PanelController/RatingPanelController.cs +++ b/Assets/Script/UI/PanelController/RatingPanelController.cs @@ -58,6 +58,10 @@ public class RatingPanelController : PanelController if (scoreResultInfo.isAdvancement == 1) { GameManager.Instance.panelManager.OpenRatingEffectPanel(1); + + //패널의 포인트들 초기화 + _ratingPointsController.InitRatingUpPoints(); + //TODO: 승급이 10->9 그리고 5->4일 때 패널 바꿔주기 } },() => { }); break; @@ -69,6 +73,9 @@ public class RatingPanelController : PanelController if (scoreResultInfo.isAdvancement == -1) { GameManager.Instance.panelManager.OpenRatingEffectPanel(-1); + + _ratingPointsController.InitRatingDownPoints(); + //TODO: 강등이 4->5 그리고 9->10일 때 패널 바꿔주기 } }, () => { }); break; @@ -161,6 +168,6 @@ public class RatingPanelController : PanelController getPointsText.text = $"게임에서 {win}했습니다.\n{Constants.RAING_POINTS} 승급 포인트를 {get}"; } // 애니메이션 실행 완료를 위한 wait - yield return new WaitForSecondsRealtime(1.5f); + yield return new WaitForSecondsRealtime(1.8f); } }