Request.cs 1.51 KB
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Globanet;

namespace Globanet
{
    namespace REST
    {
        public class Request : MonoBehaviour
        {
            private static Request _instance = null;
            private static Request instance
            {
                get
                {
                    if (_instance == null)
                    {
                        _instance = FindObjectOfType(typeof(Request)) as Request;
                        if (_instance == null)
                            _instance = new GameObject("RESTRequests").AddComponent<Request>();
                    }

                    return _instance;
                }
            }

            void Awake()
            {
                DontDestroyOnLoad(this);
            }

            public static void Create(RequestData requestData)
            {
                Create(requestData, 0);
            }

            public static void Create(RequestData requestData, float delay)
            {
                instance.CreateRequestNode(requestData, delay);
            }

            private void CreateRequestNode(RequestData data, float delay)
            {
                RequestNode newRequest = new GameObject(data.endpoint).AddComponent<RequestNode>();
                newRequest.transform.parent = transform;
                newRequest.Initialize(data, delay);
            }

            void OnDestroy()
            {
                _instance = null;
            }
        }
    }
}