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))); })); }
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); } }
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); }); } }); }
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); }); } }); }
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); }
/** * 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 ); } }
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); }