4. 씬 전환 FadeUI

2023. 11. 24. 22:28언어/유니티

728x90

터치를 했을때 검은 화면 페이드 아웃 이다 결국엔

 

 


-키워드: 페이드 아웃선언 ,enum

    public enum FadeType {
        ChangeToTransparent, // 투명으로 변경
        ChangeToBlack // 검정으로 편경
    }

 

열거형으로 선언 , 투명색과 검정색 


-키워드: 페이드기능 시작

    public void FadeStart(FadeType fadeType, AfterFade afterFade,float second = 1) {
        this.gameObject.SetActive(true);
        StartCoroutine(UpdateAlphaColor(fadeType, afterFade,second));
    }

이코드는 페이드 기능 불러오기 코드이다.

이코드를 불러오면 페이드 인 

다른코드는 페이드인을 위한 기능 


-키워드: 투명판 결정

   // 즉시 페이드 색 변경
    public void SetFadeImmediately(FadeType fadeType) {
        this.gameObject.SetActive(true);

        Color color = _fadeImage.color;
        
        switch (fadeType) {
            case FadeType.ChangeToTransparent:
                color.a = 0;
                break;
            case FadeType.ChangeToBlack:
                color.a = 1;
                break;
        }

        _fadeImage.color = color;
    }

 

이 코드는 판의 색을 투명하거나 불투명하게 만드는 역활을 한다.


-키워드: 페인드인 에니메이션

    IEnumerator UpdateAlphaColor(FadeType fadeType, AfterFade afterFade, float second) {
        
        var routine = new WaitForSeconds(0.01f);

        float fadeSpeed = (10 / second) * 0.001f;
        Color color = _fadeImage.color;

        switch (fadeType) {
            case FadeType.ChangeToTransparent:
                fadeSpeed = -1 * fadeSpeed;
                color.a = 1;
                break;
            case FadeType.ChangeToBlack:
                color.a = 0;
                break;
        }
        
        do {
            color.a += fadeSpeed;
            _fadeImage.color = color;
            yield return routine;
        } while (0 < _fadeImage.color.a && _fadeImage.color.a < 1);
        this.gameObject.SetActive(false);

        if (afterFade != null) {
            afterFade.Invoke();
        }
        
    }

 

이 코드로 받아와서 세부 사항들을 코드 애니메이션을 넣는 작업이다. 

자세한 내용은 이부분은 서버가 아니기 때문에 넘어감 

 

 

//2023. 11.24 22:27분

728x90