Files

68 lines
2.3 KiB
C#

using System;
using UnityEngine;
using BackEnd;
// SendQueue를 손쉽게 사용하기 위한 SendQueueMgr 클래스 입니다.
// 해당 스크립트를 유니티 객체에 스크롤 해서 적용해주세요.
// SendQueue에 대한 자세한 설명은 아래 개발자 문서를 참고해주세요.
// https://developer.thebackend.io/unity3d/guide/Async/SendQueue/
public class SendQueueMgr : MonoBehaviour
{
void Awake()
{
// 씬이 바뀌어도 계속 SendQueue를 사용하기 위해서
// 아래 DontDestroyOnLoad 함수를 통해 SendQueue 객체를 파괴되지 않는 오브젝트로 만듭니다.
// 자세한 설명은 아래 유니티 개발자문서를 참고해주세요.
// https://docs.unity3d.com/kr/current/ScriptReference/Object.DontDestroyOnLoad.html
DontDestroyOnLoad(this);
// 만약 SendQueue가 초기화 되지 않았다면 초기화 수행
if (SendQueue.IsInitialize == false)
{
// SendQueue는 시작과 동시에 초기화가 수행됩니다.
// 디버그 로그 활성화, 예외 이벤트 핸들러 등록
SendQueue.StartSendQueue(true, ExceptionEvent);
}
}
void Update()
{
// SendQueue가 초기화 되었을 때만 Poll 함수를 호출
if (SendQueue.IsInitialize)
{
// SendQueue를 정상적으로 사용하기 위해서는
// 아래 Poll 함수가 반드시 정기적으로 호출되어야 합니다.
BackEnd.SendQueue.Poll();
}
}
// SendQueue 내부에서 예외가 발생했을 경우
// 아래 이벤트 핸들러를 통해 예외 이벤트가 전달됩니다.
void ExceptionEvent(Exception e)
{
Debug.Log(e.ToString());
}
void OnApplicationPause(bool isPause)
{
if (isPause == false)
{
// 어플리케이션이 재실행 되었을 때 SendQueue를 재실행 시킴
SendQueue.ResumeSendQueue();
}
else
{
// 어플리케이션이 정지되었을 때 SendQueue를 일시 정지 시킴
SendQueue.PauseSendQueue();
}
}
void OnApplicationQuit()
{
// 어플리케이션이 종료되었을 때 SendQueue를 정지 시킴
BackEnd.SendQueue.StopSendQueue();
}
}