[UNITY]/TIL: UNITY

카드뒤집기 애니메이션 유지를 해보려고했다...

네,가능합니다 2024. 9. 13. 17:48

미니프로젝트가 발표까지 모두 끝이 났다.

하지만 공부는 해야한다~

 

발표준비를 도와주며, 만들었던 것중 아쉬웠던 것을 생각해보니

카드의 뒷면에 애니메이션을 넣어놨는데 카들를 뒤집을때 뒷면이 off 됐다가 다시 on 되는 형식이라

다시 on이되면 애니메이션이 처음부터 작동을 하게 되어 여기저기 카드를 뒤집으면 애니메이션이 여기저기서 알맞지 않게 돌아가는것을 확인 할 수 있다.

 

이 방법을 해결하기위해 아래 코드에서 off대신 투명도 조절을 시도해보려고 한다.

아래 코드는 카드를 뒤집는 코드이다.

 

private void FlipCard() {
    GetComponent<RectTransform>().DORotate(new Vector3(0f, 90f, 0f), 0.3f, RotateMode.FastBeyond360)
        .SetEase(Ease.InOutQuad) 
        .OnComplete(() => {
            if(front.activeSelf) {
                front.SetActive(false);
                back.SetActive(true);
            }
            else {
                front.SetActive(true);
                back.SetActive(false); // 이부분을 꺼지는것이 아닌 투명도 조절을 해보자
            }
            transform.DORotate(new Vector3(0f, 0f, 0f), 0.3f, RotateMode.FastBeyond360)
                .SetEase(Ease.InOutQuad);
        });
}

 

라는 생각을 가지고 약간의 검색을 통해 

 

    public void SetMinAlpha(CanvasGroup canvasGroup) 
    {
        canvasGroup.alpha = minAlpha;//알파값 줄이고
        canvasGroup.interactable = false; // 인터렉션 및 클릭 차단
        canvasGroup.blocksRaycasts = false;
    }

    public void SetMaxAlpha(CanvasGroup canvasGroup)
    {
        canvasGroup.alpha = maxAlpha; // 알파값 올리고
        canvasGroup.interactable = true; // 인터렉션 및 클릭 가능
        canvasGroup.blocksRaycasts = true;
    }

 

이런 스크립트를 작성하고 나서 생각해보니 카드의 캔버스 그룹을 지정하는법을 모르겠다..

 

그래서 생각해보니 그냥 스크립트를 하나 만들어서 클릭이 되면 발동되게 하고, 그 스크립트를 Back 오브젝트에만 넣어보려고 한다.

(에서 뒤집을때 변수를 주고 Update함수안에 변수로 투명도 조절하려고도 해보고 했지만... 뭔가 꼬였다)

휴..어떻게든 해보고 TIL을 작성하려 했는데 실패했다.

 

다시 처음부터 시도해봐야할것같다...

 

어떻게 할지 정리를 해보고 다시 도전해봐야겠다 역시 컴퓨터가 알아들을 수 있게 로직을 잘 짜는 역량이 정말 중요한 것 같다

'[UNITY] > TIL: UNITY' 카테고리의 다른 글

[C#] 틱택토 게임 만들기  (0) 2024.09.20
[C#] 간단한 계산기 만들기  (0) 2024.09.19
PlayerPrefs 응용에 응용하기....  (0) 2024.09.12
PlayerPrefs 응용하기  (1) 2024.09.11
히든스테이지 로직 만들기  (0) 2024.09.10