유니티 C# 토스트 메시지 간단 구현 예시 코드 작성

반응형

유니티 C# 토스트 메시지 간단 구현 예시 코드 작성

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class ToastMessage : MonoBehaviour
{
    public Text toastText;         // UI Text로 사용할 Toast 메시지
    public CanvasGroup canvasGroup; // CanvasGroup을 사용해 페이드 효과 적용
    public float fadeDuration = 0.5f; // 페이드 인/아웃 시간
    public float displayDuration = 2f; // 메시지 표시 시간

    private void Start()
    {
        // 시작할 때 메시지를 숨김
        canvasGroup.alpha = 0;
    }

    // Toast 메시지를 띄우는 함수
    public void ShowToast(string message)
    {
        // 메시지를 설정하고 표시 시작
        toastText.text = message;
        StartCoroutine(FadeToast());
    }

    // Toast 메시지의 페이드 인/아웃 및 표시 유지 시간 관리
    private IEnumerator FadeToast()
    {
        // 페이드 인 (메시지가 서서히 나타남)
        float elapsedTime = 0f;
        while (elapsedTime < fadeDuration)
        {
            elapsedTime += Time.deltaTime;
            canvasGroup.alpha = Mathf.Clamp01(elapsedTime / fadeDuration);
            yield return null;
        }

        // 메시지를 일정 시간 동안 표시
        yield return new WaitForSeconds(displayDuration);

        // 페이드 아웃 (메시지가 서서히 사라짐)
        elapsedTime = 0f;
        while (elapsedTime < fadeDuration)
        {
            elapsedTime += Time.deltaTime;
            canvasGroup.alpha = Mathf.Clamp01(1 - (elapsedTime / fadeDuration));
            yield return null;
        }

        // 메시지 숨김
        canvasGroup.alpha = 0;
    }
}

 

메세지 띄우기

// 예시: Toast 메시지 띄우기
GetComponent<ToastMessage>().ShowToast("This is a toast message!");
반응형