짱이 될거야
Unity 2D Fade In/Out 본문
Fade Out (기본 화면 -> Black)
1. 2D Canvas 생성
2. Canvas > UI > Image(name: ‘Black’) 생성 후 stretch로 canvas에 꽉 차도록 설정
- Anchors를 화면을 조금 벗어나도록 설정해준다. (혹시 화면에 꽉 찰 때 빈 틈이 생길까봐)
- 이미지 색을 검은색으로 변경
3. 이미지 alpha 값을 0으로 하고 비활성화
4. Assets/Scripts 폴더 생성 후 FadeScript.cs 작성 -> Canvas에 삽입
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FadeScript : MonoBehaviour
{
public Image Panel;
float time = 0f;
float F_time = 1f;
public void Fade()
{
StartCoroutine(FadeFlow());
}
IEnumerator FadeFlow()
{
Panel.gameObject.SetActive(true);
Color alpha = Panel.color;
while (alpha.a < 1f)
{
time += Time.deltaTime / F_time;
alpha.a = Mathf.Lerp(0, 1, time);
Panel.color = alpha;
yield return null;
}
yield return null;
}
}
5. Canvas > UI > Button 생성
6. Button의 On Click () 이벤트에 FadeScript의 Fade 함수 넣어준다.
7. Canvas의 script ‘Panel’ 변수에 ‘Black’ 컴포넌트 drag & drop
8. 만약 시작하자마자 fade out하고 싶다면, Script의 Start 함수에 Fade() 함수를 넣으면 된다.
Fade In (Black -> 기본 화면)
Button 누르면 Fade Out 되고, 1초 뒤에 바로 Fade In 실행되는 코드.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FadeScript : MonoBehaviour
{
public Image Panel;
float time = 0f;
float F_time = 1f;
public void Fade()
{
StartCoroutine(FadeFlow());
}
IEnumerator FadeFlow()
{
Panel.gameObject.SetActive(true);
time = 0f;
Color alpha = Panel.color;
while (alpha.a < 1f)
{
time += Time.deltaTime / F_time;
alpha.a = Mathf.Lerp(0, 1, time);
Panel.color = alpha;
yield return null;
}
time = 0f;
yield return new WaitForSeconds(1f);
while (alpha.a > 0f)
{
time += Time.deltaTime / F_time;
alpha.a = Mathf.Lerp(1, 0, time);
Panel.color = alpha;
yield return null;
}
Panel.gameObject.SetActive(false);
yield return null;
}
}
참고
https://www.youtube.com/watch?v=NYdLInZVsAM
'프로젝트' 카테고리의 다른 글
Unity Scene 전환 (0) | 2022.10.31 |
---|---|
Unity 한글 폰트 적용하기, 한글 깨짐 해결 (0) | 2022.10.31 |
Unity 3D Minimap: v2. Fixed map(2D) (0) | 2022.10.27 |
Unity 3D Minimap: v1. Live map(3D) (0) | 2022.10.27 |
Unity 팝업창 제작 (3D에서 2D 버튼 만들기) (0) | 2022.10.26 |
Comments