Search Unity

[Released] Ultimate Mobile

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

  1. _saby

    _saby

    Joined:
    Aug 31, 2014
    Posts:
    11
    I have problem with initialize of GameServices and InAppPurchases. For iOS all is working properly, but when I launch Android app it will stay stuck at Unity splash screen. Only when I click on home button and after that I will return to app it will load everything properly and all is working.

    I have 2 scenes (Main and MainMenu) - first loaded Main scene, where are 2 GameObjects:
    • Services - this object contains script Services.cs and 2 child Objects GameServices and InAppPurchases
      • GameServices - contains script GameServices that will connect to iOS GameCenter and Android GooglePlayServices
      • InAppPurchases - contains script InAppPurchases that will initialize InApp purchases
    • Resolution - there is attached script that will change sprite 2x or 4x and loads MainMenu scene


    In Services.cs there are 2 public gameobjects - GameServices and InAppPurhcases, also there are attached child gameobjects GameServices and InAppPurchases



    Services.cs
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class Services : MonoBehaviour
    5. {
    6.     private static bool IsInitialized = false;
    7.  
    8.     public GameServices _gameServices;
    9.     public InAppPurchases _inAppPurchases;
    10.  
    11.     void Awake()
    12.     {
    13.         if(!IsInitialized)
    14.         {
    15.             _gameServices.init();
    16.             _inAppPurchases.init();
    17.  
    18.             IsInitialized = true;
    19.         }
    20.     }
    21. }


    GameServices.cs
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class GameServices : MonoBehaviour
    5. {
    6.     public void init()
    7.     {
    8.         UM_GameServiceManager.Instance.Connect();
    9.  
    10.         UM_ExampleStatusBar.text = "Connecting To Game Service";
    11.  
    12.         UM_GameServiceManager.OnPlayerConnected += OnPlayerConnected;
    13.         UM_GameServiceManager.OnPlayerDisconnected += OnPlayerDisconnected;
    14.  
    15.  
    16.         if(UM_GameServiceManager.instance.ConnectionSate == UM_ConnectionState.CONNECTED)
    17.         {
    18.             OnPlayerConnected();
    19.         }
    20.  
    21.     }
    22.  
    23.     private void OnPlayerConnected() {
    24.         UM_ExampleStatusBar.text = "Player Connected";
    25.     }
    26.  
    27.     private void OnPlayerDisconnected() {
    28.         UM_ExampleStatusBar.text = "Player Disconnected";
    29.     }
    30. }


    InAppPurchases.cs
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class InAppPurchases : MonoBehaviour
    5. {
    6.     public void init()
    7.     {
    8.         UM_InAppPurchaseManager.OnBillingConnectFinishedAction += OnBillingConnectFinishedAction;
    9.         UM_InAppPurchaseManager.instance.Init();
    10.     }
    11.  
    12.     private void OnPurchaseFlowFinishedAction(UM_PurchaseResult result)
    13.     {
    14.         UM_InAppPurchaseManager.OnPurchaseFlowFinishedAction -= OnPurchaseFlowFinishedAction;
    15.         if (result.isSuccess)
    16.         {
    17.             UM_ExampleStatusBar.text = "Product " + result.product.id + " purchase Success";
    18.         }
    19.         else
    20.         {
    21.             UM_ExampleStatusBar.text = "Product " + result.product.id + " purchase Failed";
    22.         }
    23.     }
    24.  
    25.     private void OnBillingConnectFinishedAction(UM_BillingConnectionResult result)
    26.     {
    27.         UM_InAppPurchaseManager.OnBillingConnectFinishedAction -= OnBillingConnectFinishedAction;
    28.         if (result.isSuccess)
    29.         {
    30.             Debug.Log("Connected");
    31.         }
    32.         else
    33.         {
    34.             Debug.Log("Failed to connect");
    35.         }
    36.     }
    37. }
    Resolution.cs
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class Resolution : MonoBehaviour
    5. {
    6.     void Awake()
    7.     {
    8.         Application.targetFrameRate = 60;
    9.    
    10.         if(Screen.width > 1136) {
    11.             tk2dSystem.CurrentPlatform = "4x";
    12.         }
    13.         else {
    14.             tk2dSystem.CurrentPlatform = "2x";
    15.         }
    16.  
    17.         Debug.Log("CURRENT PLATFORM (main) : " + tk2dSystem.CurrentPlatform );
    18.         Debug.Log("Device data:");
    19.         Debug.Log("Screen resolution: " + Screen.width + " x " + Screen.height );
    20.  
    21.         Application.LoadLevel("Menu");
    22.     }
    23. }
    I don't know where is problem, as I said, iOS working great, but at Android it will stay stuck at Unity splash screen, here is LogCat (package: com.mygreatcompany.mygreatgame):

    see attached file please logcat.txt
     

    Attached Files:

    Last edited: Dec 8, 2015
  2. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    I think all of your In-App products marked as consumable.
    So, you can buy it in the first session only once.
    If you use Ultimat Mobile Billing sample, then all consumable products will be consumed with In-App Billing scene start.

    If you want to but In-App product multiple times during one game session, you should consume them multiple times also.
    Please, check it on your own.

    Best regards,
    Alex
     
  3. AlexRay

    AlexRay

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

    At first I want to say, that call Init of Google Play Service and In-App billing is not the best idea.
    You better call it after loading your application start scene. And much better with some delay after it.
    If you have large start scene with a lot of game objects to load, it may cause application start freeze on Android platform.

    I can see from the LogCat log you provided, that your Google Play Service connection state is CONNECTED
    But you didn't dispatch callback on your side.

    Following records according to billing initialization
    One more important thing - you make callback event subscription after Init method call.
    That's not the best approach also. Subscribe to callback events firstly, call Init after it.

    It's a large question you posted here.
    My recommendation is to contact The Stan's Assets Support Team directly to get the best assistance.

    Cheers!
     
  4. HomerDalors

    HomerDalors

    Joined:
    Jul 14, 2012
    Posts:
    6
    Thanks you !! so if i restore the purchase in the purchaseFlow callback, i'll be able to buy it multiple time ??
    ps: using UltimateMobile.
     
  5. _saby

    _saby

    Joined:
    Aug 31, 2014
    Posts:
    11
    Hi Alex, thank you.
    I contacted support via email few hours ago.

    So, I will initialize GameServices and InApp in MainMenu scene later.

    You said something about callback - it is about InApp? I´m new in programming and also in Unity, so I don´t know much about callback, do you mean e.g.: UM_InAppPurchaseManager.OnBillingConnectFinishedAction += OnBillingConnectFinishedAction; ?

    For example here:
    Code (CSharp):
    1.     public void init()
    2.     {
    3.         UM_InAppPurchaseManager.OnBillingConnectFinishedAction += OnBillingConnectFinishedAction;
    4.         UM_InAppPurchaseManager.instance.Init();
    5.     }
    There is first callback (if it is callback) and after that there is init.

    Or you mean something else? Thank you!
     
  6. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    I'm getting an error I can't figure out. It's happening just after connecting and frequently throughout gameplay. The logcat tells me OnPlayerDataLoaded is run, OnLeaderboardDataLoaded is run, then it shows all of the achievements and the following:
    Any tips or suggestions?
     
  7. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Yes, exactly.

    At first, you should subscribe to action event.
    And call Init method after.

    Cheers!
     
  8. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, could you provide the code snippet where you call IncrementAchievement method?
    Do you call this method with Achievement's ID or Achievement's Name?

    Cheers!
     
  9. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Do you mean RestorePurchases method call?
    Users restore transactions to maintain access to content they've already purchased. For example, when they upgrade to a new phone, they don't lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button.
    Additional information according purchase restoring you can find here.

    In you case you should Consume all the items you want to buy multiple times.

    Best regards,
    Alex
     
  10. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    OK. This is a little complicated. I didn't like how UM uses the Apple Game Center's way of doing incremental achievements (by requiring me to figure out a percentage) so I bypassed the unified API and just went straight for Android Native commands.

    So first I get the GPAchievement, with this:

    Code (csharp):
    1. static GPAchievement GetGPAchievement(string achievementID) {
    2.     UM_Achievement cheev = UltimateMobileSettings.Instance.GetAchievementById(achievementID);
    3.     return GooglePlayManager.Instance.GetAchievement(cheev.AndroidId);
    4. }
    Then, since I have some achievements in "tiers," I have them named with their base name and then "_Bronze" or "_Silver" or "_Gold" at the end. Here are some of them:
    Cubiq Achievements.png
    From there, I use a single function to increment all tiers at once, like so:

    Code (csharp):
    1. public static void IncrementCheevo(string name, int currentAmount) {
    2. #if UNITY_ANDROID
    3.     GPAchievement cheev = GetGPAchievement(name + "_Bronze");
    4.     // don't increment if current amount isn't greater than previously recorded achievement progress
    5.     if (currentAmount - cheev.CurrentSteps > 0) {
    6.         GooglePlayManager.Instance.IncrementAchievement(cheev.Id, currentAmount - cheev.CurrentSteps);
    7.     }
    8.  
    9.     cheev = GetGPAchievement(name + "_Silver");
    10.     // don't increment if current amount isn't greater than previously recorded achievement progress
    11.     if (currentAmount - cheev.CurrentSteps > 0) {
    12.         GooglePlayManager.Instance.IncrementAchievement(cheev.Id, currentAmount - cheev.CurrentSteps);
    13.     }
    14.  
    15.     cheev = GetGPAchievement(name + "_Gold");
    16.     // don't increment if current amount isn't greater than previously recorded achievement progress
    17.     if (currentAmount - cheev.CurrentSteps > 0) {
    18.         GooglePlayManager.Instance.IncrementAchievement(cheev.Id, currentAmount - cheev.CurrentSteps);
    19.     }
    20. #endif
    21. }
    And finally, here's an example of a line of code that is actually calling the above function:

    Code (csharp):
    1. IncrementCheevo("XP_Level", _currentLevel);
     
  11. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    The way Ultimate Mobile handles incremental achievements could really be improved, in my opinion.

    Right now, you make me have to calculate the percentage of every single achievement. That means I need to somehow store and access the total number of steps each achievement needs so I can compare it to the current steps and calculate the percentage.

    Why not just let me mark an achievement as Incremental in the settings and type in the total steps there, then let the plugin figure out the percentage when I tell it to increment Current Steps by 2 (for example)?
     
  12. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    At first glance your code is OK.
    So, let's try to clarify this case.
    What plugin version do you use?
    Anyway, I would like to recommend you get the latest Ultimate Mobile v4.2 available in Asset Store.

    You provide me the LogCat log from your Android device in your previous messages.
    Following records take place
    Code (CSharp):
    1. 12-08 21:15:25.379 27678 27678 I Unity : AndroidJavaException: android.content.res.Resources$NotFoundException: String resource ID #0x0
    2. 12-08 21:15:25.379 27678 27678 I Unity : at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
    3. 12-08 21:15:25.379 27678 27678 I Unity : at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
    4. 12-08 21:15:25.379 27678 27678 I Unity : at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
    It looks like some of the native resources (exactly ids.xml file) don't exist in your final APK build.
    Please, make sure that you have all the native resources as shown on attached screenshots.

    achievementsIDs.png
    Please, check it on your own.

    If any issues will take place - feel free to contact me or Stan's Assets Support Team.

    Best regards,
    Alex
     
  13. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    I'm using UM 4.1.1. I tried to update to v4.2 but it caused a lot of problems, so I reverted. I wasted an entire day on that, so I'm not eager to try it again.

    The reason why I'm hesitant to upgrade anything is because the game is pretty much feature complete and ready to launch once I get achievements working. The project is in Unity 4.x for similar reasons. We tried upgrading things to Unity 5 and also updating some of our 3rd party assets but too many things broke and it was taking too long to fix everything.

    I believe UM 4.1.1 puts the files in a slightly different location:

    Ultimate Mobile - ids.xml.png

    I'm pretty sure the file is included in the final build because I have some non-incremental achievements which I can unlock without an issue. Additionally, I'm able to use GetAchievementProgress on all of the achievements, including the incremental achievements, and there is no error about the IDs being missing.

    The only time I get that error is when I try to increment an achievement by some steps. Do you have any other suggestions before I waste another day or two trying (and probably failing) to properly upgrade Ultimate Mobile to 4.2?
     
  14. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    After quite a bit of customizing Ultimate Mobile, I finally managed to get incremental achievements working. Hooray! Here's a summary of what I did:

    1. I edited the UM_Achievement.cs script to allow me to store the number of steps:

    Code (csharp):
    1. [SerializeField]
    2. private int _Steps = 1; // defaults to 1 for standard (non-incremental) achievements
    3.  
    4. public int Steps {
    5.     get { return _Steps; }
    6.     set { _Steps = value; }
    7. }
    2. Then I customized the UMSettingsEditor.cs script to let me configure incremental achievements in the Editor:

    Code (csharp):
    1. // near the top of the script
    2. GUIContent AINCREMENTAL = new GUIContent("Incremental[?]:", "Does this achievement require multiple steps to unlock?");
    3. GUIContent ASTEPS = new GUIContent("Achievement Steps[?]:", "Total steps needed to unlock achievement.");
    4.  
    5. // in the appropriate place within the GameServiceSettings() function.
    6. EditorGUILayout.BeginHorizontal();
    7. EditorGUILayout.LabelField(AINCREMENTAL);
    8. achievement.IsIncremental = EditorGUILayout.Toggle(achievement.IsIncremental);
    9. EditorGUILayout.EndHorizontal();
    10.  
    11. if (achievement.IsIncremental) {
    12. EditorGUILayout.BeginHorizontal();
    13. EditorGUILayout.LabelField(ASTEPS);
    14. achievement.Steps = EditorGUILayout.IntField(achievement.Steps);
    15. EditorGUILayout.EndHorizontal();
    16.  
    17. if (achievement.Steps < 2) {
    18.     EditorGUILayout.BeginHorizontal();
    19.     EditorGUILayout.HelpBox("Number of steps must be a value between 2 and 10,000 (inclusive).", MessageType.Warning);
    20.     EditorGUILayout.EndHorizontal();
    21.     }
    22. }
    It allows you to select whether or not an achievement is incremental, and if it is, you can store how many steps are required to unlock the achievement. Also notice how the middle achievement is only configured for 1 step, so it warns me that I should increase the number of steps and tells me the valid range (according to Google Play Games limits). Here's a screenshot of what it looks like in action:
    Ultimate Mobile - Custom Achievement Steps.png

    3. From there, I made some new functions in UM_GameServicesManager.cs to increment achievements by steps rather than percentage:

    Code (csharp):
    1. public void IncrementAchievementByCurrentSteps(string id, int steps) {
    2.     UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);
    3.     if (achievement == null) {
    4.         Debug.LogError("Achievement not found with id: " + id);
    5.         return;
    6.     }
    7.  
    8.     IncrementAchievementByCurrentSteps(achievement, steps);
    9. }
    10.  
    11. public void IncrementAchievementByCurrentSteps(UM_Achievement achievement, int steps) {
    12.     switch (Application.platform) {
    13.         case RuntimePlatform.IPhonePlayer: {
    14.             float percentage = ((float)steps / (float)achievement.Steps) * 100f;
    15.             GameCenterManager.SubmitAchievement(percentage, achievement.IOSId);
    16.             break;
    17.         }
    18.         case RuntimePlatform.Android: {
    19.             GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
    20.             if (a != null) {
    21.                 if (a.Type == GPAchievementType.TYPE_INCREMENTAL) {
    22.                     GooglePlayManager.Instance.IncrementAchievementById(a.Id, steps - a.CurrentSteps);
    23.                 } else {
    24.                     GooglePlayManager.Instance.UnlockAchievementById(a.Id);
    25.                 }
    26.             }
    27.  
    28.             break;
    29.         }
    30.     }
    31. }
    4. Additionally, I added some checks in GooglePlayManager.cs so that it doesn't give errors if the value you try to increment by is less than 1:

    Code (csharp):
    1. public void IncrementAchievement(string achievementName, int numsteps) {
    2.     if (!GooglePlayConnection.CheckState() || numsteps < 1) { return; }
    3.     AN_GMSGeneralProxy.incrementAchievement(achievementName, numsteps.ToString());
    4. }
    5.  
    6. public void IncrementAchievementById(string achievementId, int numsteps) {
    7.     if (!GooglePlayConnection.CheckState() || numsteps < 1) { return; }
    8.     AN_GMSGeneralProxy.incrementAchievementById(achievementId, numsteps.ToString());
    9. }
    5. And finally, I added some functions in UM_GameServiceManager.cs to get achievement progress returned in steps rather than as a percentage:

    Code (csharp):
    1. public int GetAchievementProgressInSteps(string id) {
    2.     UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);
    3.     if (achievement == null) {
    4.         Debug.LogError("Achievement not found with id: " + id);
    5.         return 0;
    6.     }
    7.  
    8.     return GetAchievementProgressInSteps(achievement);
    9. }
    10.  
    11. public int GetAchievementProgressInSteps(UM_Achievement achievement) {
    12.     if (achievement == null) {
    13.         Debug.LogError("Achievement is null. No progress can be retrieved.");
    14.         return 0;
    15.     }
    16.  
    17.     switch (Application.platform) {
    18.         case RuntimePlatform.IPhonePlayer: {
    19.             float percentage = GameCenterManager.GetAchievementProgress(achievement.IOSId);
    20.             return Mathf.CeilToInt(((float)achievement.Steps / 100f) * percentage);
    21.             }
    22.         case RuntimePlatform.Android: {
    23.             GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
    24.             if (a != null) {
    25.                 if (a.Type == GPAchievementType.TYPE_INCREMENTAL) {
    26.                     return (a.CurrentSteps);
    27.                 } else {
    28.                     return (a.State == GPAchievementState.STATE_UNLOCKED) ? 1 : 0;
    29.                 }
    30.             }
    31.             break;
    32.         }
    33.     }
    34.  
    35.     return 0;
    36. }
    Now I can increment all three tiers of my incremental achievements very easily, like so:

    Code (csharp):
    1. public static void IncrementCheevo(string name, int currentAmount) {
    2.     Debug.Log("Setting " + name + " to " + currentAmount + " steps.");
    3.     UM_GameServiceManager.Instance.IncrementAchievementByCurrentSteps(name + "_Bronze", currentAmount);
    4.     UM_GameServiceManager.Instance.IncrementAchievementByCurrentSteps(name + "_Silver", currentAmount);
    5.     UM_GameServiceManager.Instance.IncrementAchievementByCurrentSteps(name + "_Gold", currentAmount);
    6. }
    And after all that I just now realized as I'm typing this up what was wrong with it in the first place. I was using GooglePlayManager.Instance.IncrementAchievement and passing in the ID of the achievement instead of the name. For that I should have been using IncrementAchievementById().

    Phew!

    Please feel free to implement my customizations into a future version of Ultimate Mobile, as I feel it makes a lot more sense to configure the steps in the editor and then just pass in the current steps and let the plugin figure out the percentage than it does to make me have to store the current/total steps separately myself and calculate the percentage from them before passing that into the Increment function.

    That said, there may be some slight errors in some of the code I posted here. I noticed a few things that wouldn't return the correct/expected value as I was typing this up. I corrected it to the best of my knowledge in my own scripts, but may not have properly edited this post with the corrections.

    And may I recommend that in some future version of Ultimate Mobile you completely remove the deprecated functions/properties? Especially the ones that have the same names as the valid ones but with a lowercase first letter instead of a capitalized first letter? It's annoying to have autocomplete select the obsolete one and then get warnings about using obsolete functions/properties.

    Thanks.
     
    Last edited: Jul 14, 2016
  15. young-xyz

    young-xyz

    Joined:
    Feb 23, 2015
    Posts:
    51
    I'm using Ultimate Mobile v4.2.0.
    I'm trying to use google analytics crash report, but it shows first line of stacktrace only.
    I did some googling and I found that I have to use custom exception reporter and exception parser to show all stacktrace.
    Does google analytics in Ultimate Mobile have no full stacktrace option?
    If so, how can I make custom reporter and parser in unity script that works with Ultimate Mobile?
     
  16. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    this happened only on android when I take a picture from the camera the camera restart then when I try again the whole app restart
     
  17. akash_langhani

    akash_langhani

    Joined:
    May 22, 2014
    Posts:
    8
    Ad Mediation import gives to many error with Ultimate mobile already imported in same project using unity 5..?
     
  18. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    ok i found the issue in some androids when you install the apk popup will appear to open the app if you access your app from this popup some weird bugs will happen like my camera issue always open the app from the apps menu
     
  19. CYS

    CYS

    Joined:
    Aug 25, 2013
    Posts:
    11
    Hi, does ultimate mobile works for turn-based multiplayer with Google Play Service, even for iOS devices? If so, i'm a little confused what i should sign in with, "UM_GameServiceManager.instance.Connect();" or "GooglePlayConnection.Instance.Connect ();"?
     
  20. Akio-Sensei

    Akio-Sensei

    Joined:
    Nov 21, 2014
    Posts:
    8
    Hi.

    iPad3 Camera doesn't work.
    Please check this.

    thanks.
     
  21. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    the camera return low res image even if i increase the max size
     
  22. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    Hello, first of all, great plugin!

    I'm having an issue with the android camera. The resolution is AWEFUL! I tried setting it's max size, allowing full picture instead of thumbnail, etc, and nothing seems to work.

    On IOS, it works without any issue.
     
  23. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    What kind of errors did you get after importing AdMediation into the project with Ultimate Mobile?
    Could you provide the full list of errors you get?

    Cheers!
     
  24. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, could you provide more additional detailed information to make me able to understand you?

    Cheers!
     
  25. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Guys, I'll make additional tests ton my side to find out the reason of such behavior.

    Please, could you provide me information about Android devices you use for test?
    Especially device model and Android version.
    I'll give you me feedback soon.

    Cheers!
     
  26. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    I'll make additional tests on my side to find out the reason of such behavior and fix it.
    Keep in touch, I'll provide you my feedback shortly.

    Best regards,
    Alex
     
  27. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Ultimate Mobile is the plugin with unified APIs for Android and iOS platforms.
    The best approach is to use unified API calls.

    So, if you call UM_GameServiceManager.instance.Connect(), Google Play Service connection will be started in a case of Android and Game Center connection in a case of iOS platform.
    There is no Google Play Service support for iOS platform with Ultimate Mobile plugin.

    If you have any additional questions - feel free to contact me.
    Best regards,
    Alex
     
  28. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    I am glad to know, that all the issues with your project have been fixed!

    Your feature request for incremental achievement added into our tasks list.
    To add Steps field for incremental achievements is really great idea.
    I'll consider about it with my team and most likely this feature will be added in future plugin updates.
    Also such methods as InsrementAchievementWithSteps(string id, int steps) etc. will be added.

    Please, keep looking forward to future plugin updates.
    Thank you for you patience and understanding!

    Best regards,
    Alex
     
  29. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    Hey Alex, thanks for the quick response.

    Im testing on a S4 mini, with Android 4.4.2
     
  30. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    - I click a button on my game to open the camera.
    - I take the photo
    - instead of the Texture2D load in my scene the camera view open again and ask me to take another photo
    the second time i take a photo from the camera the whole game restart
    in LG g4 stylus android 5.1 it still happing no matter what i do
     
  31. robertwahler

    robertwahler

    Joined:
    Mar 6, 2013
    Posts:
    43
    Are there plans to support Unity 5.3's tvOS target in the Native iOS portion of the bundle? I'm specifically interested in the key-value iCloud support. If not, does anyone have an asset recommendation? Thanks!
     
  32. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    I'm having on ios 9
    clang: error: no such file or directory: GMA_SA_Lib.m'
    I'm trying to access the website to get the upgrade Docs but the website is 404 Please Help
     
  33. Stranger-Games

    Stranger-Games

    Joined:
    May 10, 2014
    Posts:
    393
    Your plugin seems great. I am planning for an app that will support windows 10 universal, iOS, Android and I will use mainly the in-app purchase, pop ups and analytics.
    The plugin seems to support WP8, but does it support windows 10 universal SDK?
     
  34. hattori

    hattori

    Joined:
    Oct 18, 2014
    Posts:
    21
    I got a question about how to setup Google Play Game Service using Ultimate Mobile 4.3.2

    I have two ids.xml files in my project.
    One is Plugins/Android/res/values/ids.xml and The other is Plugins/Android/AN_Res/res/values/ids.xml.
    Latter is provided by Ultimate Mobile and sample data is specified in it.

    Which one should I override with my data (app id, achievement data) ?? Former one or Latter one ?
    If I should override latter one, do I need to remove first one ?

    Your documentation doesn't say anything about which file should use or override...I'm so stuck.

    Cheers
     
  35. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    Another issue im encountering:

    When I open the library, and select a picture, the callback is not happening in the app (Android). In iOS with the same code, it's working perfectly
     
  36. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    any news about this issue
     
  37. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    Where are the support guys
     
  38. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    have you been able to fix it cuz i'm trying with no luck
     
  39. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    No, im still in need of assitance! I have no idea where the support is....
     
  40. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Application restart on camera image picked callback for LG G4 - that's really strange behavior.
    I have a lot of Android devices at office. This issue does not reproduce on any of them.
    So, maybe this issue is related to the certain device. I can not say exactly for now.

    Did you test the same application build on any other Android devices?
    Do you test the CameraAndGallery sample scene?

    Best regards,
    Alex
     
  41. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Do you test the CameraAndGallery sample scene?
    I made additional tests of this functionality - everything works well.

    Be sure, that you didn't mess up with the image picked event actions callback.
    Please, check it and give me your feedback.

    Cheers!
     
  42. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello guys,
    The source code of our plugins is open.
    So, you may open it on your own and check exactly image loading.
    There are few places, where images are loaded from byte stream.
    In such a places decoding quality settings are set to 100%.

    You may build androidnative.jar library on your own and perform tests of image loading quality.
    So, I am definitely sure, that image is not compressed and quality should not be reduced because of our implementation error. It may be related to any kind of device or to Android OS manually.
    Do you have any additional information how does this functionality work on any other Android devices?
    If you need any kind of my assistance - I am open to the conversation.

    Best regards,
    Alex
     
  43. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Please, take a look at this documentation guide.

    We had some technical problems with our documentation hub.
    For now, it's up and running.
    Please, check it.

    Cheers!
     
  44. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Yes, we have some plans according to tvOS platform support.
    For now this work is in progress. Unfortunately, I can not say exactly how much time it will take.

    About any updates and new features should be announced additionally.
    Please, look forward to new updates.

    Thank you!
     
  45. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    Yes, the situation according to Windows Phone platform changed a lot.
    Our team is currently working on Windows Store Applications support.
    Update for this platform will be released soon.

    The next step I think will be Windows 10 Mobile platform.
    We considered this features in our team.
    Please, keep looking forward to new updates.

    Have a nice day!
     
    Stranger-Games likes this.
  46. AlexRay

    AlexRay

    Joined:
    Jul 9, 2014
    Posts:
    993
    Hello,
    This changes related to new native resources flow for Unity 5.3 and higher version.
    So, the main ids.xml file is located in Plugins/Android/AN_Res/res/values/ folder.
    All other ids.xml files related to Ultimate Mobile and Android Native should be ignored.

    Cheers!
     
  47. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    I could fix the issue with the image, I had to play around with the camara settings in the Ultimate Mobile settings. Maybe a bug is somewhere around there.

    Also, why is Amazon Native not included in here? I thought it was :/
     
  48. fahd

    fahd

    Joined:
    Aug 7, 2014
    Posts:
    31
    I fixed the issue by downgrading to older version then it fixed.
    my guess is that sometimes it does not read from the settings on the latest version cuz when I print the value it keep giving me 512 even if I changed it to 2048
     
  49. nofair888

    nofair888

    Joined:
    Aug 1, 2015
    Posts:
    3
    @AlexRay : Hi, i'm using UM 4.3.2, i have some issue, and can't find out after 3 hours of research. Please help.

    Issue: I try to sing in to Google Service on Awake with this code:

    UM_GameServiceManager.Instance.Connect();

    Popup login, i choose account, and google play let login with circle loading. But then...
    Then always, always, Result is Player DIsconnected.

    I have try demo code UM_GameServiceExample, result is same. I have no idea why i can't connect to Google Service. So please help me with some solution. THanks you!
     
  50. GastonC

    GastonC

    Joined:
    Aug 26, 2012
    Posts:
    38
    @AlexRay Using the camera plugin, there is no way to know if the camera was taking portrait or landscape?

    I cant even tell with the widht or height, because they are always the same even though one is portrait and the other isnt.

    This plugin is giving me more headaches than solutions...