コード例 #1
0
 public virtual void FetchDetail(IPackage package, Action <IPackage> doneCallbackAction = null)
 {
     if (m_UnityConnect.isUserLoggedIn && long.TryParse(package?.uniqueId, out var productId))
     {
         m_AssetStoreClient.FetchDetail(productId, doneCallbackAction);
     }
 }
コード例 #2
0
        private void FetchDetailsFromQueue()
        {
            if (!m_UnityConnect.isUserLoggedIn)
            {
                return;
            }

            var numItemsAdded = 0;

            while (m_FetchDetailsQueue.Any() && numItemsAdded < k_FetchDetailsCountPerUpdate && m_CurrentFetchDetails.Count < k_MaxFetchDetailsCount)
            {
                var packageId = m_FetchDetailsQueue.Dequeue();
                if (!m_DetailsToFetch.Remove(packageId))
                {
                    continue;
                }
                if (long.TryParse(packageId, out var productId))
                {
                    m_CurrentFetchDetails.Add(packageId);
                    numItemsAdded++;
                    m_AssetStoreClient.FetchDetail(productId, package => m_CurrentFetchDetails.Remove(packageId));
                }
            }
        }