Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 2
0
    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);
        }
    }