From 34df0ec6b71627bfcca3154304b102891a843b96 Mon Sep 17 00:00:00 2001 From: HaeinLEE Date: Fri, 28 Mar 2025 14:58:22 +0900 Subject: [PATCH] =?UTF-8?q?[Style]=20Points=20=EC=95=A0=EB=8B=88=EB=A9=94?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=B2=98=EB=A6=AC=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=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; } }