오늘은 프로젝트 씬 사이 보다 자연스러운 씬 전환을 보여 줄 수 있도록 하는, 화면을 점점 어둡게 하거나 점점 투명하게 하여 더욱 매끄러운 씬 전환을 하는 방법에 대하여 알아보겠습니다.
저번 알파 값을 이용하여 투명도를 조절 하는 방법을 포스팅 하였는데요, 오늘은 그 알파 값과 Time.deltaTime 값을 이용해 씬 화면이 더 자연스럽게 보이도록 조정하겠습니다.
먼저 판넬 하나를 만들고, 투명도를 100으로 한 뒤, 다음과 같은 스크립트를 작성해 컴포넌트합니다.
public class Init_Splash : MonoBehaviour
{
GameObject SplashObj; //판넬오브젝트
Image image; //판넬 이미지
private bool checkbool = false; //투명도 조절 논리형 변수
void Awake()
{
SplashObj = this.gameObject; //스크립트 참조된 오브젝트
image = SplashObj.GetComponent<Image>(); //판넬오브젝트에 이미지 참조
}
void Update()
{
StartCoroutine("MainSplash"); //코루틴 //판넬 투명도 조절
if (checkbool) //만약 checkbool 이 참이면
{
Destroy(this.gameObject); //판넬 파괴, 삭제
}
}
IEnumerator MainSplash()
{
Color color = image.color; //color 에 판넬 이미지 참조
for (int i = 100; i >= 0; i--) //for문 100번 반복 0보다 작을 때 까지
{
color.a -= Time.deltaTime * 0.01f; //이미지 알파 값을 타임 델타 값 * 0.01
image.color = color; //판넬 이미지 컬러에 바뀐 알파값 참조
if (image.color.a <= 0) //만약 판넬 이미지 알파 값이 0보다 작으면
{
checkbool = true; //checkbool 참
}
}
yield return null; //코루틴 종료
}
}
이후 실행 하면 화면이 점점 투명해지며, 자연스러운 씬 전환이 될 것이다.
또, 반대로 한다면, 화면이 점점 불투명 해지며, 반대의 상황도 가능하다.
아래는 실행 영상이다.
유니티 배열을 이용한 Audio Source 사운드 (0) | 2020.06.21 |
---|---|
유니티 AR core 빌드 시 오류 Unity ARCore Manifest merger failed ,Unity ARCore : Manifest merger failed : Attribute meta-data#com.google.ar.core@value value=(optional) (0) | 2020.06.20 |
유니티 모바일 빌드 없이 바로 실행하는 유용한 기능 Unity Remote 5 (0) | 2020.06.17 |
유니티 오브젝트 알파 값 조정 투명화 (2) | 2020.06.16 |
유니티 시간 지연 함수 Invoke() (0) | 2020.06.13 |
댓글 영역