コード例 #1
0
 private void LoginAndInitiateBuySelected()
 {
     AssetStoreLoginWindow.Login("Please login to the Asset Store in order to get payment information about the package.", (AssetStoreLoginWindow.LoginCallback)(errorMessage =>
     {
         if (errorMessage != null)
         {
             return;
         }
         AssetStoreAssetSelection.RefreshFromServer((AssetStoreAssetSelection.AssetsRefreshed)(() => this.InitiateBuySelected(false)));
     }));
 }
コード例 #2
0
        private void InitiateBuySelected(bool firstAttempt)
        {
            AssetStoreAsset firstAsset = AssetStoreAssetSelection.GetFirstAsset();

            if (firstAsset == null)
            {
                EditorUtility.DisplayDialog("No asset selected", "Please select asset before buying a package", "ok");
            }
            else if (AssetStoreAssetInspector.paymentAvailability == AssetStoreAssetInspector.PaymentAvailability.AnonymousUser)
            {
                if (AssetStoreClient.LoggedIn())
                {
                    AssetStoreAssetSelection.RefreshFromServer(delegate
                    {
                        this.InitiateBuySelected(false);
                    });
                }
                else if (firstAttempt)
                {
                    this.LoginAndInitiateBuySelected();
                }
            }
            else if (AssetStoreAssetInspector.paymentAvailability == AssetStoreAssetInspector.PaymentAvailability.ServiceDisabled)
            {
                if (firstAsset.previewInfo == null)
                {
                    return;
                }
                AssetStore.Open(string.Format("content/{0}/directpurchase", firstAsset.packageID));
            }
            else if (AssetStoreAssetInspector.paymentAvailability == AssetStoreAssetInspector.PaymentAvailability.BasketNotEmpty)
            {
                if (firstAsset.previewInfo == null)
                {
                    return;
                }
                if (firstAttempt)
                {
                    AssetStoreAssetSelection.RefreshFromServer(delegate
                    {
                        this.InitiateBuySelected(false);
                    });
                }
                else
                {
                    AssetStore.Open(string.Format("content/{0}/basketpurchase", firstAsset.packageID));
                }
            }
            else
            {
                AssetStoreInstaBuyWindow.ShowAssetStoreInstaBuyWindow(firstAsset, AssetStoreAssetInspector.s_PurchaseMessage, AssetStoreAssetInspector.s_PaymentMethodCard, AssetStoreAssetInspector.s_PaymentMethodExpire, AssetStoreAssetInspector.s_PriceText);
            }
        }
コード例 #3
0
 private void LoginAndImport(AssetStoreAsset asset)
 {
     AssetStoreLoginWindow.Login("Please login to the Asset Store in order to get download information for the package.", delegate(string errorMessage)
     {
         if (errorMessage == null)
         {
             AssetStoreAssetSelection.RefreshFromServer(delegate
             {
                 AssetStoreInstaBuyWindow.ShowAssetStoreInstaBuyWindowBuilding(asset);
             });
         }
     });
 }
コード例 #4
0
 private void LoginAndInitiateBuySelected()
 {
     AssetStoreLoginWindow.Login("Please login to the Asset Store in order to get payment information about the package.", delegate(string errorMessage)
     {
         if (errorMessage == null)
         {
             AssetStoreAssetSelection.RefreshFromServer(delegate
             {
                 this.InitiateBuySelected(false);
             });
         }
     });
 }
コード例 #5
0
 public static void AddAsset(AssetStoreAsset searchResult, Texture2D placeholderPreviewImage)
 {
     // ISSUE: object of a compiler-generated type is created
     // ISSUE: variable of a compiler-generated type
     AssetStoreAssetSelection.\u003CAddAsset\u003Ec__AnonStorey4E assetCAnonStorey4E = new AssetStoreAssetSelection.\u003CAddAsset\u003Ec__AnonStorey4E();
     // ISSUE: reference to a compiler-generated field
     assetCAnonStorey4E.searchResult = searchResult;
     if ((Object)placeholderPreviewImage != (Object)null)
     {
         // ISSUE: reference to a compiler-generated field
         assetCAnonStorey4E.searchResult.previewImage = AssetStoreAssetSelection.ScaleImage(placeholderPreviewImage, 256, 256);
     }
     // ISSUE: reference to a compiler-generated field
     assetCAnonStorey4E.searchResult.previewInfo = (AssetStoreAsset.PreviewInfo)null;
     // ISSUE: reference to a compiler-generated field
     assetCAnonStorey4E.searchResult.previewBundleRequest = (AssetBundleCreateRequest)null;
     // ISSUE: reference to a compiler-generated field
     // ISSUE: reference to a compiler-generated field
     if (!string.IsNullOrEmpty(assetCAnonStorey4E.searchResult.dynamicPreviewURL) && (Object)assetCAnonStorey4E.searchResult.previewBundle == (Object)null)
     {
         // ISSUE: object of a compiler-generated type is created
         // ISSUE: variable of a compiler-generated type
         AssetStoreAssetSelection.\u003CAddAsset\u003Ec__AnonStorey4D assetCAnonStorey4D = new AssetStoreAssetSelection.\u003CAddAsset\u003Ec__AnonStorey4D();
         // ISSUE: reference to a compiler-generated field
         assetCAnonStorey4D.\u003C\u003Ef__ref\u002478 = assetCAnonStorey4E;
         // ISSUE: reference to a compiler-generated field
         assetCAnonStorey4E.searchResult.disposed = false;
         // ISSUE: reference to a compiler-generated field
         // ISSUE: reference to a compiler-generated field
         assetCAnonStorey4D.client = new AsyncHTTPClient(assetCAnonStorey4E.searchResult.dynamicPreviewURL);
         // ISSUE: reference to a compiler-generated field
         // ISSUE: reference to a compiler-generated method
         assetCAnonStorey4D.client.doneCallback = new AsyncHTTPClient.DoneCallback(assetCAnonStorey4D.\u003C\u003Em__8A);
         // ISSUE: reference to a compiler-generated field
         assetCAnonStorey4D.client.Begin();
     }
     else
     {
         // ISSUE: reference to a compiler-generated field
         if (!string.IsNullOrEmpty(assetCAnonStorey4E.searchResult.staticPreviewURL))
         {
             // ISSUE: reference to a compiler-generated field
             AssetStoreAssetSelection.DownloadStaticPreview(assetCAnonStorey4E.searchResult);
         }
     }
     // ISSUE: reference to a compiler-generated field
     AssetStoreAssetSelection.AddAssetInternal(assetCAnonStorey4E.searchResult);
     AssetStoreAssetSelection.RefreshFromServer((AssetStoreAssetSelection.AssetsRefreshed)null);
 }
コード例 #6
0
        /**
         * Initiate a purchase of the selected package from the asset store.
         * The package will be the one that contains the currently selected asset.
         *
         * Since not all users may have allowed for single click purchases this can result
         * in two scenarios:
         * 1. single click allowed and a native purchase acknowledgement dialog appears to
         *    finalize the purchase.
         * 2. single click is not allowed and the package is put to an asset store basket.
         *    Then the asset store window is displayed with the basket open.
         */
        void InitiateBuySelected(bool firstAttempt)
        {
            //Debug.Log("payavail " + paymentAvailability.ToString());
            // Ask the asset store if the use has allowed single click payments
            AssetStoreAsset asset = AssetStoreAssetSelection.GetFirstAsset();

            if (asset == null)
            {
                EditorUtility.DisplayDialog("No asset selected", "Please select asset before buying a package", "ok");
            }
            else if (paymentAvailability == PaymentAvailability.AnonymousUser)
            {
                // Maybe the asset store window did a login already and we have a session key
                // then we just need to fetch the new info
                if (AssetStoreClient.LoggedIn())
                {
                    AssetStoreAssetSelection.RefreshFromServer(delegate() {
                        InitiateBuySelected(false);
                    });
                }
                else if (firstAttempt)
                {
                    LoginAndInitiateBuySelected();
                }
            }
            else if (paymentAvailability == PaymentAvailability.ServiceDisabled)
            {
                // Use the asset store window to complete the purchase since single click is not possible
                if (asset.previewInfo == null)
                {
                    return;
                }
                AssetStore.Open(string.Format("content/{0}/directpurchase", asset.packageID));
            }
            else if (paymentAvailability == PaymentAvailability.BasketNotEmpty)
            {
                // Use the asset store window to complete the purchase since there is already \
                // something in the users basket
                if (asset.previewInfo == null)
                {
                    return;
                }

                // Maybe the basket has been emptied and this is a retry by the user
                if (firstAttempt)
                {
                    AssetStoreAssetSelection.RefreshFromServer(delegate() {
                        InitiateBuySelected(false);
                    });
                }
                else
                {
                    AssetStore.Open(string.Format("content/{0}/basketpurchase", asset.packageID));
                }
            }
            else
            {
                // Show single click window
                AssetStoreInstaBuyWindow.ShowAssetStoreInstaBuyWindow(asset,
                                                                      AssetStoreAssetInspector.s_PurchaseMessage,
                                                                      AssetStoreAssetInspector.s_PaymentMethodCard,
                                                                      AssetStoreAssetInspector.s_PaymentMethodExpire,
                                                                      AssetStoreAssetInspector.s_PriceText
                                                                      );
            }
        }
コード例 #7
0
 public static void AddAsset(AssetStoreAsset searchResult, Texture2D placeholderPreviewImage)
 {
     if (placeholderPreviewImage != null)
     {
         searchResult.previewImage = AssetStoreAssetSelection.ScaleImage(placeholderPreviewImage, 256, 256);
     }
     searchResult.previewInfo          = null;
     searchResult.previewBundleRequest = null;
     if (!string.IsNullOrEmpty(searchResult.dynamicPreviewURL) && searchResult.previewBundle == null)
     {
         searchResult.disposed = false;
         AsyncHTTPClient client = new AsyncHTTPClient(searchResult.dynamicPreviewURL);
         client.doneCallback = delegate(AsyncHTTPClient c)
         {
             if (!client.IsSuccess())
             {
                 Console.WriteLine("Error downloading dynamic preview: " + client.text);
                 searchResult.dynamicPreviewURL = null;
                 AssetStoreAssetSelection.DownloadStaticPreview(searchResult);
                 return;
             }
             AssetStoreAsset firstAsset = AssetStoreAssetSelection.GetFirstAsset();
             if (searchResult.disposed || firstAsset == null || searchResult.id != firstAsset.id)
             {
                 return;
             }
             try
             {
                 AssetBundleCreateRequest cr = AssetBundle.LoadFromMemoryAsync(c.bytes);
                 cr.DisableCompatibilityChecks();
                 searchResult.previewBundleRequest = cr;
                 EditorApplication.CallbackFunction callback = null;
                 double startTime = EditorApplication.timeSinceStartup;
                 callback = delegate
                 {
                     AssetStoreUtils.UpdatePreloading();
                     if (!cr.isDone)
                     {
                         double timeSinceStartup = EditorApplication.timeSinceStartup;
                         if (timeSinceStartup - startTime > 10.0)
                         {
                             EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Remove(EditorApplication.update, callback);
                             Console.WriteLine("Timed out fetch live preview bundle " + (searchResult.dynamicPreviewURL ?? "<n/a>"));
                         }
                         return;
                     }
                     EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Remove(EditorApplication.update, callback);
                     AssetStoreAsset firstAsset2 = AssetStoreAssetSelection.GetFirstAsset();
                     if (!searchResult.disposed && firstAsset2 != null && searchResult.id == firstAsset2.id)
                     {
                         searchResult.previewBundle = cr.assetBundle;
                         if (cr.assetBundle == null || cr.assetBundle.mainAsset == null)
                         {
                             searchResult.dynamicPreviewURL = null;
                             AssetStoreAssetSelection.DownloadStaticPreview(searchResult);
                         }
                         else
                         {
                             searchResult.previewAsset = searchResult.previewBundle.mainAsset;
                         }
                     }
                 };
                 EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Combine(EditorApplication.update, callback);
             }
             catch (Exception ex)
             {
                 Console.Write(ex.Message);
                 Debug.Log(ex.Message);
             }
         };
         client.Begin();
     }
     else if (!string.IsNullOrEmpty(searchResult.staticPreviewURL))
     {
         AssetStoreAssetSelection.DownloadStaticPreview(searchResult);
     }
     AssetStoreAssetSelection.AddAssetInternal(searchResult);
     AssetStoreAssetSelection.RefreshFromServer(null);
 }