private void LoadData() { if (File.Exists(dataPath)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); string data; using (FileStream fileStream = File.Open(dataPath, FileMode.Open)) { try { data = (string)binaryFormatter.Deserialize(fileStream); campaigns = JsonUtility.FromJson <AdsCampaignCollection>(data); } catch (System.Exception e) { Debug.LogError(e.Message); campaigns = new AdsCampaignCollection(); } } } else { campaigns = new AdsCampaignCollection(); } }
private IEnumerator Start() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); yield return(new WaitForSeconds(4));//delay inititata inhouse ads dataPath = Path.Combine(Application.persistentDataPath, "ads_inhouse_data.dat"); LoadData(); AdsCampaignCollection newCampaigns = null; UnityWebRequest www = UnityWebRequest.Get(GET_ADS_LIST_URL + "?appId=" + appKey + "&os=" + (Application.platform == RuntimePlatform.Android ? 1 : 2)); yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); yield break; } else { newCampaigns = JsonUtility.FromJson <AdsCampaignCollection>(www.downloadHandler.text); if (newCampaigns.result == null) { yield break; } List <AdsCampaign> updatedCampaign = new List <AdsCampaign>(); foreach (AdsCampaign campaign in newCampaigns.result) { if (campaigns.IsCampaignNew(campaign) || !campaign.IsCampaignCached()) { updatedCampaign.Add(campaign); } } campaigns = newCampaigns; SaveData(); var adsElements = new List <AdsElement>(); foreach (var campaign in updatedCampaign) { adsElements.AddRange(campaign.arrImages); } foreach (var element in adsElements) { yield return(StartCoroutine(CacheElement(element)));//cache ads data } } } else { Destroy(gameObject); } }