Search Unity

[Released] Ultimate Mobile

Discussion in 'Assets and Asset Store' started by stanislav-osipov, Aug 14, 2014.

  1. ickydime

    ickydime

    Joined:
    Nov 20, 2012
    Posts:
    110
    Nevermind... I think there are 2 files that say click to install. I did Mobile Native instead of Ultimate... I went back and did ultimate and it works.
     
  2. DanTaylor

    DanTaylor

    Joined:
    Jul 6, 2013
    Posts:
    119
    Hello!
    Does anybody know if it is possible to use the native sharing to send an e-mail with a text file attached?
    Thanks!
     
  3. Wadjey

    Wadjey

    Joined:
    Feb 4, 2015
    Posts:
    244
    Hello,
    Ultimate Mobile is supporting Windows 10 Mobile? if no, will you support it soon?
     
  4. grimmy

    grimmy

    Joined:
    Feb 2, 2009
    Posts:
    409
    How can I detect if a product has already been purchased by a user in Google Store. I am using the playmaker action UM_isPurchased but this seems to return true regardless if the currently logged on user has purchased it or not. Is this a bug or am I doing something wrong?
     
  5. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    There is no such feature in Ultimate Mobile.
    You can share text message or text message with the image attached using native sharing intent.

    Best regards,
    Alex
     
  6. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Ultimate Mobile does not support Windows 10 Mobile.
    For now there is Windows Phone 8.0/8.1 support.
    Most likely Windows 10 Mobile support will be added in future, but I can not say exactly how long it will take.

    Anyway, keep looking forward to future plugin updates.

    Cheers!
     
  7. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    UM_IsProductPurchased Playmaker action is well tested and works well.
    More detailed description of such an action is following.

    UM_Is Product Purchased
    Use this action to check is product purchased. You need to fill field Product Identifier, which you need to check.

    Events:
    • Product State Purchased - fires when product purchased.
    • Product State Unknown - fires when product doesn't purchase.
    Fileds:
    • Product Identifier [string] - id of the product which you need to check.
    • Is Purchased [Boolean] - return true if purchased and false if not.
    Most likely you messed up with Playmaker action or Products configs in you project.
    Please, could you provide more additional information to make me able to help you?
    Feel free to ask any information you need - I am open to the conversation.

    Best regards,
    Alex
     
  8. grimmy

    grimmy

    Joined:
    Feb 2, 2009
    Posts:
    409
    Hi Alex, thanks for replying, but I'm testing this with 4 different accounts. Only 2 of which I've used to actually purchase the product. With each account I get a message in Locat saying the the product is already owned even if I completly remove the apps cache and re-sign in on both the google play store on device and in the game itself.
    The playmaker setup is very simple and just runs as soon as the player has logged in at the start of the app..UM_IsProductPurchased runs straight after that. The Product State Purchased event is triggered no matter which account I am signed in with. (?!)

    PS..I use the same id for purchasing the products and that all works fine.
     
    Last edited: Nov 13, 2015
  9. MasterBob

    MasterBob

    Joined:
    Nov 16, 2013
    Posts:
    1
    Hi,
    I have purchased the Ultimate Mobile asset for unity after seeing the excellent reviews on the asset store. I have a question on the in-app purchases set up for android development.
    In unity, on the ultimate mobile settings tab, I have access to 2 different In-App purchases lists: one under UltimateMobileSettings and one under AndroidNativeSetting. On top of that I also have a list I can set up in the Google developper console. My question is: how can i synchronize those 3 lists? And if I can't, which one should I use? Does the plugin interacts with Google API and allows me to use the Google functions and classes listed here http://developer.android.com/google/play/billing/api.html#purchase? (I can provide images if needed)

    Also in the BillingExampleScene, clicking the "Init store" button calls GPaymentManagerExample.init (). However, this does not set GPaymentManagerExample._isInited to true, which is done in OnRetrieveProductsFinised(), after OnBillingConnected() has been called. OnBillingConnected() is added to an event:
    AndroidInAppPurchaseManager.ActionBillingSetupFinished += OnBillingConnected;​
    the ActionBillingSetupFinished event is called in the OnBillingSetupFinishedCallback() function of the AndroidInAppPurchaseManager, but this OnBillingSetupFinishedCallback function is never called, thus preventing GPaymentManagerExample to be initialized and messing up everything! Does anyone know anymore about this, and the workflow of setting up transactions in general?

    I have read https://unionassets.com/android-native-plugin/setup-in-developer-console-87 thoroughly and have not found an answer yet
     
  10. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Let's try to clarify this case.

    In-App purchasing flow description is following.
    Make all purchases in Ultimate Mobile Settings window as Consumable.
    You will be able to consume each of these items after successful purchase and then purchase again as many times as you need. You may add 'Consume' button on the scene to consume such items and make them able for purchase again.
    App local cache cleaning will not help you with In-App purchases testing because player's inventory is not stored locally.
    Player's inventory will be loaded at runtime with billing initialization. So, to remove item from player's inventory you can just consume certain product.

    You got Product State Product state purchased because you bought your products earlier and didn't call Consume method to make them available for In-App purchases again.
    Please, pay your attention to such places in your project.

    Best regards,
    Alex
     
  11. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Ultimate Mobile plugin includes Android Native functionality. As a result, AndroidNativeSettings will take place.
    But in a case of Ultimate Mobile plugin in your project, you have to work with exactly with UltimateMobileSettings.
    All In-App products will be automatically added into AndroidNativeSettings and IOSNativeSettings.

    You ask me where do I get all the products to input into UltimateMobileSettings?
    The answer is - from your Google Play Console.
    You have to provide In-App product's ID and SKU for all the platforms you target your game.

    Your understanding of Android In-App Purchase Manager is wrong.
    Billing will be initialized successfully and OnBillingSetupFinishedCallback function WILL BE called.
    You may think this function is never called, because there is no references to this method from C# scripts of the plugin.
    But this method will be called from the native part of the plugin provided in an_billing.jar library.
    I am pretty sure, that BillingExample scene is well tested and works well.

    Best regards,
    Alex
     
  12. jprocha101

    jprocha101

    Joined:
    Apr 8, 2015
    Posts:
    134
    Hello @AlexRay - Is there a way to determine the user's email address after they sign in to google play or game center?

    There is a GooglePlayManager.Instance.currentAccount variable, however that is empty after sign in. I have not tested on iOS yet.

    Thanks!
     
  13. Mage-Co

    Mage-Co

    Joined:
    Jul 1, 2014
    Posts:
    13
    Hi All, I using Ultimate mobile but I don't want to use Admob however I can not find where to disable admob, I still have to add Google Admob framework to my Xcode and then Apple review have reject my game since it have admob but not display.
    Thanks in advance.
     
  14. grimmy

    grimmy

    Joined:
    Feb 2, 2009
    Posts:
    409
    Hi my problem is that my product IS a non consumable product. Its essentially just a very simple' Full version Unlock' so yes, I could set it up as a consumable and then perhaps add code for detecting whether it has already been bought using the players game save data, but this wont help when they use another device etc. So surely this isnt the real way to set up and test a consumable item is it? Unless I have misunderstood?

    My questions are:
    -are you saying I should ALWAYS tick 'consumable' in UM settings even if i want my product to be non-consumable? If so, why is there even the option?
    -What is a consumne button. There doesnt seem to be a 'consume' command in Playmaker if I was to go down this route.

    You can email me direct simon AT ruleoffun.com
    Thanks.
     
  15. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Unfortunately, there is no unified API in Ultimate Mobile to get user's e-mail.

    On Android platform, you can get user's e-mail with Advanced Sign-In API.
    Just be sure, that you have all required permissions:
    Code (CSharp):
    1. <uses-permission android:name="android.permission.INTERNET" />
    2. <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    As for iOS platform - there is no such opportunity to get user's e-mail.

    Best regards,
    Alex
     
    jprocha101 likes this.
  16. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    I transferred your request to Support Team.
    You will get assistance shortly.

    Cheers!
     
  17. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    To get Google AdMob disabled for your project, you have to select iAd App Network in Ultimate Mobile Settings Editor window as shown on the screenshots below.


    In such a case, you should not add Google AdMob framework to your XCode project.

    Best regards,
    Alex
     
  18. peroon

    peroon

    Joined:
    Nov 18, 2012
    Posts:
    7
    Device : Nexus6 (Android)
    Unity 5.0.2f1

    [Fail]
    When I tweet a screenshot, it fails.

    [Success]
    Direct Messsage is success.
    Instagram is success.
    Before tweet, I delete the screenshot, and attach other saved image, it success.

    On fail,
    notification came from twitter, and image seems broken.

    Is there any hints to fix this issue?

     
    k-ishibashi likes this.
  19. ickydime

    ickydime

    Joined:
    Nov 20, 2012
    Posts:
    110
    I am working on integrating game center leaderboards and getting an authentication error when submitting a score.

    I created a leaderboard and an achievement in iTunes. I am able to authenticate and see that I've logged in via Sandbox and even open game center from your API. It shows the achievement but not the leaderboard... I am not sure if that is sign I have an issue or if that is because I just haven't recorded a score.

    However, when I try to either retrieve my high score or submit a new high score for the given leaderboard I see the following errors:
    2015-11-18 13:16:36.055 spaceunicorn[9796:751425] ISN reportScore: 0

    2015-11-18 13:16:36.056 spaceunicorn[9796:751425] ISN category level1

    High Score: 0

    UnityEngine.Debug:Internal_Log(Int32, String, Object)

    UnityEngine.Debug:Log(Object)

    ProgressionController:RecordLevelCompletion(LevelData, Boolean, Boolean, Int32)

    GameOverMenu:populate(Boolean, Boolean, Boolean)

    <GameOverAsync>c__Iterator1B:MoveNext()


    (Filename: /Users/builduser/buildslave/unity/build/artifacts/iPhonePlayer-armv7-il2cppGenerated/UnityEngineDebug.cpp Line: 56)


    2015-11-18 13:16:37.459 spaceunicorn[9796:751425] ISN new high score sumbitted success: 0

    2015-11-18 13:16:41.520 spaceunicorn[9796:751425] ISN Error scores loading Error Domain=GKErrorDomain Code=6 "The requested operation could not be completed because local player has not been authenticated." UserInfo=0x18deadd0 {NSLocalizedDescription=The requested operation could not be completed because local player has not been authenticated.}

    ReportScoreUpdateFail

    UnityEngine.Debug:Internal_Log(Int32, String, Object)

    UnityEngine.Debug:Log(Object)

    GK_LocalPlayerScoreUpdateListener:ReportScoreUpdateFail(String)

    GK_Leaderboard:ReportLocalPlayerScoreUpdateFail(String, Int32)

    GameCenterManager:OnLoaderBoardInfoRetrivedFail(String)

    Note, that earlier in the process I have successfully authenticated as shown by these logs:
    2015-11-18 13:08:48.611 spaceunicorn[9796:751425] ISN PLAYER AUTHENTICATED xxxxxxxxx

    Any clue what might be wrong with my setup?
     
  20. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, could you provide more additional information according to this case to make me able to help you?
    Your code snippets, where you make the screenshot and call UM_ShareUtility.TwitterShare method will be really helpful in this case.
    Attach LogCat logs from your Android device while testing Twitter Share also.

    Best regards,
    Alex
     
    peroon likes this.
  21. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, could you provide me the full log from your device to find out the reason of such behavior?
    If you have any additional question - I am open to the conversation.

    Best regards,
    Alex
     
  22. ickydime

    ickydime

    Joined:
    Nov 20, 2012
    Posts:
    110
    Thanks for the response. I am not sure why but when I went to grab the logs it was working. I am confused... If I can reproduce it I will be back. Otherwise, thanks for the quick reply.
     
  23. OG_Jacob

    OG_Jacob

    Joined:
    May 17, 2015
    Posts:
    10
    Hi There,

    Same issue as user above, peroon, twitter for me also fails to send with attached screenshot but Direct Message works fine. I have tried a couple of methods (script and PlayMaker) with the same result for both, I also tried switching format from .jpg to .png and also lowering max size.

    private IEnumerator PostTwitterScreenshot()
    {

    yield return new WaitForEndOfFrame();
    // Create a texture the size of the screen, RGB24 format
    int width = Screen.width;
    int height = Screen.height;
    Texture2D tex = new Texture2D(width, height);
    // Read screen contents into the texture
    tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
    tex.Apply();

    UM_ShareUtility.TwitterShare("Share", tex);

    Destroy(tex);

    }

    Any help would be appreciated.
     
  24. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, could you provide more additional information according to this case to make me able to help you?
    What plugin version do you use? What Unity version?
    Provide Android version of your testing device also.

    Attach LogCat logs from your Android device while testing Twitter Sharing also.

    Best regards,
    Alex
     
  25. JEDressler

    JEDressler

    Joined:
    Apr 18, 2015
    Posts:
    7
    Includes Ultimate Mobile the DatePicker function , as contained in iOS Native ?

    Thanks!
     
  26. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Ultimate Mobile contains only the unified set of APIs for AndroidNative, iOS Native and WP8 Native plugins.
    DateTime Picker functionality is related only for iOS Native part.
    So, UM does not include DateTime Picker API itself.

    Anyway, you can use DateTime Picker using iOS Native APIs as following:
    Code (CSharp):
    1. //Subscribing to actions
    2. IOSDateTimePicker.instance.OnDateChanged += OnDateChanged;
    3. IOSDateTimePicker.instance.OnPickerClosed += OnPickerClosed;
    4.  
    5. //Showing the Date Time Picker
    6. IOSDateTimePicker.instance.Show(IOSDateTimePickerMode.DateAndTime);
    7.  
    8.  
    9. //Getting Date result
    10.  
    11.  
    12. void OnDateChanged (System.DateTime time) {
    13.     Debug.Log("OnDateChanged: " + time.ToString());
    14. }
    15.  
    16. void OnPickerClosed (System.DateTime time) {
    17.     Debug.Log("OnPickerClosed: " + time.ToString());
    18. }
    Best regards,
    Alex
     
  27. Wadjey

    Wadjey

    Joined:
    Feb 4, 2015
    Posts:
    244
    I bought your plugin and I'm looking forward for the Windows 10 support, please add Windows 10 support the soonest possible.
     
  28. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    As I said earlier, we considered in our team about Windows 10 support.
    This support will be added in future. Unfortunately, I can not say exactly how much time it will take.
    So, if you need Windows 10 support strictly now, you better search another plugin with the required functionality in Asset Store.

    Thank you for your patience and understanding.
    Best regards,
    Alex
     
  29. Wadjey

    Wadjey

    Joined:
    Feb 4, 2015
    Posts:
    244
    Unfortunately there is no Windows 10 plugin in the Asset Store at the moment, I hope Ultimate Mobile will be the first to support this platform ;)
     
  30. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
  31. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    There is no such functionality in Ultimate Mobile.

    The camera and gallery API allow you to read images from camera and gallery, and save an image from your app to the device gallery.
    In other words, you can call camera activity to get a photo or call image chooser activity to get an image from camera.
    Also, there are APIs for saving the screenshot into the gallery.

    Best regards,
    Alex
     
  32. coder_for_life22

    coder_for_life22

    Joined:
    Dec 25, 2013
    Posts:
    46
    Hello,

    I am having the same issues as some others with posting to social media.
    I implement the code exactly how it is in the Social sharing demo. and no luck. I click, the method gets called but no windows pops up.

    I even launched the demo of the Social Sharing plug-in and tried that as well. and still no luck. Not sure what the issue is. I am currently using the latest version of unity. Anyone else having this issue?
     
  33. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    I'm experiencing a strange issue on Android when I try to sign into Google Play Games Services.

    The first time I launch the game (after a fresh install with no previous game data on the device) the game pauses and pops up a little dialog asking me which account to use to sign into Google Play. I select my account and click OK and it signs in, then resumes the game like normal. Perfect!

    However, any subsequent time I launch the game, having already been signed into Google Play previously, the game pauses as if it is going to pop up the dialog. But no dialog appears and nothing happens. The game just sits there and waits. If I press the Back button then the game will unpause but it will not connect to Google Play. If, instead of pursuing the Back button, I use the task switcher button or the home button to make the game lose focus and then go back to the game, the game will unpause and connect to Google Play as it should.

    Why is the game pausing or getting stuck trying to sign in? Is there some sort of invisible/hidden button it wants me to touch to finish signing in? How can I get it to just sign in like normal without any interaction from the player (assuming the player has signed in during a previous session)?

    Any help/solution would be much appreciated.

    This is using the latest stable (non-patch) release of Unity 4.x.
     
    afftar likes this.
  34. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, provide me more detailed description of this case.
    What Sharing do you use? What's the result?
    Android LogCat logs will be helpful in this case also.

    Best regards,
    Alex
     
  35. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Let's clarify this case.

    For now Ultimate Mobile plugin does not require application main activity.
    So, Ultimate Mobile uses native activity for Google Play Service login.

    The answer for your question is following - we have this 1second immersive mode enable because of login activity popup while Google Play Service user login.
    The main advantage of not using main activity is ultimate cross-plugin compatibility.

    Android Native does not use main activity. Our plugin will NOT conflict with other plugins, that use main app activity.
    There is no way to disable 1sec immersive mode with Google Play Service login.

    According to Google Play Services connection problems.
    You get freeze because your start game scene is overloaded.
    Great instructions set you can find here.
    This guide has been kindly provided by @aer0ace.
    Many thanks for the author of this blog!

    My advice for you is to check your project.
    Anyway, feel free to ask me any questions - I am open to the conversation.

    Best regards,
    Alex
     
  36. jprocha101

    jprocha101

    Joined:
    Apr 8, 2015
    Posts:
    134
    @Deozaan as alexray mentioned you can look at the article. One suggestion in the article that worked for me was the one second pause. Although I paused before attempting to connect to Google play, not after, thus giving the scene time to load. I'm not sure about the overloading because this happened to me on a pretty basic scene with only a static menu, but it solved the issue.
     
    Last edited: Dec 3, 2015
  37. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    Thank you @AlexRay and @jprocha101 for your responses.

    I realized that my script was trying to connect to Google during OnEnable and decided that was probably too soon in the scene while everything else was instantiating and setting itself up, so I changed it to occur after several seconds after the scene first loads (after our splash screen animation finished). This only fixes the issue halfway.

    If I sit there and let the animation play all by itself until it finishes, it will connect to Google Play without problems. But if I tap the screen to skip the last half of the animation (which still lets the scene run for a few seconds after startup before trying to connect) I get the same behavior with the game coming out of Immersive mode and pausing, and then nothing happening unless I make the game lose focus or press the Back button.

    @AlexRay I'm not sure I understand what you said. I don't see what connecting to Google Play has to do with Immersive Mode. I'm already putting the game into Immersive Mode on the loading scene before the main menu scene is loaded. I try to connect to Google Play on the main menu scene. Is connecting to Google Play while already in Immersive Mode somehow causing a conflict?

    I read that blog/article but it didn't say anything about the issue I'm experiencing. That said, I'm already trying to connect to Google Play from inside a coroutine and still obviously having problems.

    As an aside: the documentation doesn't have information for the latest releases on the Version pages.
     
    afftar likes this.
  38. afftar

    afftar

    Joined:
    Apr 18, 2014
    Posts:
    65
    +1
    I have these same problems.
    It is very annoying, UM is positioned as a solution to the problems of integration and actually creates more of them :((
     
  39. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    @Deozaan and @afftar
    Guys, did you follow the instructions from the article I provided you in my previous post?
    In most cases they resolve all the issues with Google Play Service connect.

    Anyway, if you have any issues with your project, feel free to contact support@stansassets.com to get the best assistance.
    Thst's the best approach.

    Best regards,
    Alex
     
  40. ScaryRobotGames

    ScaryRobotGames

    Joined:
    May 2, 2007
    Posts:
    57
    I'm having issues with Ultimate Mobile's Game Center displaying the wrong leaderboard/achievements. I've triple checked that the Apple ID is correct. It is. But when I test it the app displays the "iOS Native" leaderboard. Not mine. I've tried uninstalling/reinstalling the UM plugin but it's still broken. After uninstalling, I installed Prime 31's Game Center and it STILL displayed the "iOS Native" board. Something is NOT getting cleared by the uninstall process. As a test, I created a new project using Prime 31 from the start and it displayed the correct leaderboard info. Please tell me what I need to purge from the project so I can get the proper leaderboard loaded.
     
  41. _saby

    _saby

    Joined:
    Aug 31, 2014
    Posts:
    11
    Hello,
    please when I want submit time score. It is long variable in seconds - for example variable (long type) hiScore 33 is 33 seconds. Im using this:

    UM_GameServiceManager.Instance.SubmitScore(leaderBoardId, hiScore);

    iOS GameCenter works great - works in seconds, in minutes ... But Android GamePlay services are not working good. In Dev Console I have set my leaderboard to time.
    When I want to try it, hiScore value is now 53 and when I show GameServices from google, it shows that my highest score is 0,05 - that is not correct.

    Is possible that its caused because I have GameServices in test mode?

    And one more question - how to made unified multiple leaderboards for iOS and Android?

    Thanks
     
  42. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    What method do you actually use to display the leaderboard?
    Anyway, it's strange behavior.
    You better contact The Stan's Assets Support Team for assistance via e-mail.
    That's the best approach.

    Cheers!
     
    Last edited: Dec 7, 2015
  43. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Let's try to clarify this case.
    While all scores are submitted to leaderboards and stored internally as long integers, the Games service can present them to the user in a number of different formats:
    • Numeric leaderboards present scores as numbers. These can be displayed as integers or as real numbers with a fixed number of decimal places. You submit the score as integers and the decimal point is inserted in the specified location. A score of 314159, for example, would be displayed as 3.14159, 3141.59, or 314159, depending on the decimal place you specified.
    • Time leaderboards present scores in hours / minutes / seconds / hundredths of a second format. You must submit scores as milliseconds, so 66032 would be interpreted as 1:06.03.
    • Currency leaderboards present scores in a currency format. You submit scores as 1/1,000,000th of the main currency unit. For example, a score of 19,950,000 would be interpreted as $19.95, assuming you specified your currency as USD.
    Numeric leaderboards also support custom units. For instance, if your game measures high scores in meters, you can specify "meters" as the default unit for your leaderboard.
    Please, follow these instructions to setup your leaderboards properly.

    Description of basic Leaderboards functionality with Ultimate Mobile you can find here.

    Best regards,
    Alex
     
  44. _saby

    _saby

    Joined:
    Aug 31, 2014
    Posts:
    11

    Hi,
    so as I said - GameCenter from Apple works, so when I submit 32 as long integer, it will be 32 seconds.
    When I submit 32 as long integer into Android PlayServices, it will be 0.03.

    So I must provide 32 for Android to be 32 seconds in milliseconds format, so 32000 right?

    So, I must have 2 versions:

    Code (CSharp):
    1. long hiScore = (long) score;
    2.  
    3. #if UNITY_IOS
    4. UM_GameServiceManager.Instance.SubmitScore("totaltime", hiScore);
    5. #elifUNITY_ANDROID
    6. UM_GameServiceManager.Instance.SubmitScore("totaltime", hiScore * 1000);
    7. #endif
    So I need multiply score for Android by 1000 to get milliseconds from seconds, right?
     
  45. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    Here are some spelling mistakes I've noticed:

    Code (csharp):
    1. UM_GameServiceManager.Instance.ConnectionSate == UM_ConnectionState.CONNECTED
    That should be ConnectionState. State, not sate.

    And a minor one is on the Ultimate Mobile editor window (inspector) in In-App Purchases it says "Platfroms Settings" instead of "Platform Settings".
     
  46. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    @afftar I managed to get it working by adding more delays before connecting. Basically waiting until everything was well finished loading, then waiting another second or two before trying to connect. Now it appears to connect reliably without lockups.
     
  47. HomerDalors

    HomerDalors

    Joined:
    Jul 14, 2012
    Posts:
    6
    Hello, i have an issue with Ultimate Mobile in-app purchases on Android,
    it only works ONE time when using the application, then i'll have to reload the game for the method to work,
    here the two snippets used in my case: (buying hints, which is a consumable product in the settings)

    Code (CSharp):
    1.     public void PurchaseHints()
    2.     {
    3.         UM_InAppPurchaseManager.OnPurchaseFlowFinishedAction += OnPurchaseHintsFinishedAction;
    4.         UM_InAppPurchaseManager.instance.Purchase("hints_pack");
    5.     }
    6.  
    7.     private void OnPurchaseHintsFinishedAction(UM_PurchaseResult result)
    8.     {
    9.         UM_InAppPurchaseManager.OnPurchaseFlowFinishedAction -= OnPurchaseHintsFinishedAction;
    10.         if (result.isSuccess)
    11.         {
    12.             PlayerPrefs.SetInt("Hints", PlayerPrefs.GetInt("Hints") + 5);
    13.             new MobileNativeMessage("Thank you", "You have now " + PlayerPrefs.GetInt("Hints") + " Hints !");
    14.            
    15.         }
    16.         else
    17.         {
    18.             Debug.Log("Product " + result.product.id + " purchase Failed");
    19.         }
    20.  
    21.     }
     
  48. jprocha101

    jprocha101

    Joined:
    Apr 8, 2015
    Posts:
    134
    @PenicillinGamez don't call this line in the callback. If you do then you are detaching the method as a delegate and it will no longer be executed.

    UM_InAppPurchaseManager.OnPurchaseFlowFinishedAction -= OnPurchaseHintsFinishedAction;
     
    HomerDalors likes this.
  49. HomerDalors

    HomerDalors

    Joined:
    Jul 14, 2012
    Posts:
    6
    done so, and still the same issue, only the first call result in a success, all the others return a false isSuccess.
    does it have any relation with using the android.test.purchased as an SKU ??

    Thanks for your help.
     
  50. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    @jprocha101 Yes, calling that line detaches the method. But it is re-added each time PurchaseHints() is called. I don't think that line is the problem.

    @PenicillinGamez Is it possible that the purchase is failing because the player can only purchase the item once, because it is not being consumed before attempting to purchase it again?