Search Unity

Easy Mobile - Many-in-one package for mobile games

Discussion in 'Assets and Asset Store' started by pt5011, Jan 28, 2017.

  1. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405

    @SkolMandM Could you please write us at support@sglibgames.com so we can help with this? Thank you so much!
     
  2. Maxim_AO

    Maxim_AO

    Joined:
    Jan 25, 2015
    Posts:
    15
    Hello guys, i have a problem and do not know what to do with.
    We implemented saving to remote with EM PRO, and we have a problem, that after user being authenticated, we try to open save file, but sometimes it is not opening with error message "AuthenticationError", what is really weird, that before calling open save we checking GameServices.IsInitialized(), and only if it is TRUE we do open save.
    So how is it possible, that we asking about authentication status, it says us it is fine and then during opening save it says there is an authentication problem, without any additional info?
    Here is code:
    Code (CSharp):
    1. public static void tryOpenSave(UnityAction action = null) {
    2.     if (GameServices.IsInitialized() && (savedGameObject == null || !savedGameObject.IsOpen))
    3.         GameServices.SavedGames.OpenWithAutomaticConflictResolution(SaveLoader.REMOTE_SAVE_NAME, (savedGame, error) => {
    4.             saveOpenedGame(savedGame, error);
    5.             if (action != null)
    6.                 action.Invoke();
    7.         });
    8. }
    9.  
    10. private static void saveOpenedGame(SavedGame savedGame, string error) {
    11.     SimpleLogger.Log(LogType.DEBUG, "Callback on save called");
    12.  
    13.     if (string.IsNullOrEmpty(error))
    14.     {
    15.         if (savedGame.IsOpen) {
    16.             SimpleLogger.Log(LogType.DEBUG, "Save opened successfully");
    17.             savedGameObject = savedGame;
    18.         } else {
    19.             tryOpenSave();
    20.             SimpleLogger.Error("Saved game is not opened without error!");
    21.         }
    22.     }
    23.     else
    24.     {
    25.         tryOpenSave();
    26.         SimpleLogger.Error("Open saved game failed with error: " + error);
    27.    
    So as you can see, we try always hold saved game opened, to make fast save, and try recursively open it, if it is not. But only if user authenticated.
    At the end, it works, but for a lot of users we getting thousands error reports with text:
    "Open saved game failed with error: AuthenticationError"

    I do not know what to do with that and why is it happening, we worry that users could have problems with non-saved game progress because of it, could you help with it?
     
  3. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Can you reproduce the issue on your end every time, or does it occur intermittently?
     
  4. Maxim_AO

    Maxim_AO

    Joined:
    Jan 25, 2015
    Posts:
    15
    we weren't able to reproduce it, looks like it just happens from time to time to the about of 100-200 our users. For most of them it works fine.
     
  5. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    It's tricky debugging then. This looks like it warrants an issue report on GPGS repo. Will you have time for that?
     
  6. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
  7. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    AFAIK, using this kind of dialog is a very common practice on both Apple and Google Play stores. But things may change recently which I haven't known of yet. Can you cite any relevant article about such prohibition?
     
  8. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
    I can't find this article, may be it's just reccomendation. So i was wrong =)
    Another question. Does it possible to make 3 buttons dialog with "Cancel", "Send Feedback", "Rate us". It would be more fair for user.
     
  9. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
  10. Jasinka

    Jasinka

    Joined:
    Oct 18, 2016
    Posts:
    50
    Hello,

    I am having problem with onesignal and Google Play games plugin, always crashing on phone. Even don't opening.
    Tried 3 version of Unity. Newest one, 2018.3.2f1 and LTS version 2017.4.21f1

    Tried and older one signal version.
    GPGP = Read about manifest and \003 nothing helped. Files already was fixed.

    Maybe you know working SDK versions of Onesignal and GPGP?

    Thank you in advance,
    Regards.
     
  11. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Could you please send the crashlog to our support email so we can assist? Thank you so much!
     
  12. naxovr

    naxovr

    Joined:
    Dec 8, 2017
    Posts:
    4
    Hi, you are giving me error after downloading the latest version of GooglePlayGames -0.9.61. In the Unity console it puts the following errors:

    Assets/GooglePlayGames/Platforms/Native/NativeVideoClient.cs(30,40): error CS0246: The type or namespace name `IVideoClient' could not be found. Are you missing an assembly reference?
    Assets/GooglePlayGames/BasicApi/IPlayGamesClient.cs(344,11): error CS0234: The type or namespace name `IVideoClient' does not exist in the namespace `GooglePlayGames.BasicApi.Video'. Are you missing an assembly reference?
    Assets/GooglePlayGames/BasicApi/DummyClient.cs(431,47): error CS0234: The type or namespace name `IVideoClient' does not exist in the namespace `GooglePlayGames.BasicApi.Video'. Are you missing an assembly reference?
    Assets/GooglePlayGames/ISocialPlatform/PlayGamesPlatform.cs(191,16): error CS0246: The type or namespace name `IVideoClient' could not be found. Are you missing an assembly reference?
    Assets/GooglePlayGames/Platforms/Native/NativeClient.cs(56,26): error CS0246: The type or namespace name `IVideoClient' could not be found. Are you missing an assembly reference?
    Assets/GooglePlayGames/Platforms/Native/NativeClient.cs(1065,16): error CS0246: The type or namespace name `IVideoClient' could not be found. Are you missing an assembly reference?


    Hi, you are giving me error after downloading the latest version of GooglePlayGames -0.9.61. In the Unity console it puts the following errors:

    Is there any way to solve it? is that having an error in console do not show me the EasyMobile options to disable.
    Or by some chance I'm doing something wrong.
    Thanks and regards
     
  13. plusgamesgulcanyazir

    plusgamesgulcanyazir

    Joined:
    Feb 12, 2019
    Posts:
    6
    Hello everyone! I had a problem & just solved it. I am just sharing my solution for those who might have a similar problem. Here is my setup, problem & solution. It might help you solve yours.

    SETUP:
    I imported Easy Mobile plugin into my project. I use Admob + Unity Ads(through Admob mediation). The plugin gives me the chance to use Unity Ads directly. However; I prefer to use Unity Ads through Admob mediation for better flexibility and on-the-fly changes. Thus, I disabled all Unity Ads related stuff from services menu, even removed Unity Ads from package manager, also did not import Monetization plugin from the Asset Store. I only imported Google Mobile Ads plugin and Unity adapter for Google Mobile Ads following the guidelines on Admob page.(Adapter imports com.unity3d.ads.unity-ads-#.#.#.aar itself because it is a dependency)

    PROBLEM:
    • Banner ads served by Admob work as expected. Did not test callbacks.Not needed in my case.
    • Intersitial ads served by Admob and Unity Ads work as expected. Did not test callbacks.Not needed in my case.
    • Rewarded ads served by Admob work as expected. Tested callbacks, they are needed in my project and they work as expected.
    • Rewarded ads served by Unity Ads through Admob mediation loads&show as expected. Tested callbacks, however they don't work as expected. "RewardedAdCompleted" callback never fire at first ad request and is inconsistent with the following requests. This is a big problem for my game as I give free coins as a reward.
    In deeper investigation, I realized that the problem was with the way "RewardedAdCompleted" & "RewardedAdSkipped" callbacks work in the Easy Mobile plugin. They first check "Google Mobile Ads's OnAdRewarded" callback, switch a bool flag accordingly and decide if rewarded video is skipped or watched till the end within the "Google Mobile Ads's OnAdClosed" callback. For this to work properly, OnAdRewarded should always be called before OnAdClosed. However, it does not; at least for Unity Ads's rewarded videos called through mediation.

    SOLUTION: Delay what happens in "OnAdClosed" at least one frame so that "OnAdRewarded" can set the bool flag properly and in time. I did this with a simple Coroutine and the problem is solved. All rewarded video callbacks for both Admob and Unity ads works as expected now.

    SUMMARY: If you have a problem with your rewarded video callbacks, the problem is probably with your code or within a plugin you import & the way it manages callbacks. Not with Admob, Unity Ads or their plugins.

    If this post is of any help to you, you are welcome :)
     
    Fronne likes this.
  14. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi,

    Looks like some files of the GooglePlayGames plugin (GPGS) were missing. Please try removing folder Assets/GooglePlayGames and reimport GPGS again.
     
    naxovr likes this.
  15. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi,

    Thanks for sharing the info. It's very useful.

    Yes the GoogleMobileAds SDK doesn't provide any event for a skipped rewarded ad as of now, so we had to figure it out based on OnAdRewarded and OnAdClosed. As you observed, this SDK always invokes OnAdRewarded before OnAdClosed with its own ads. But it doesn't do so with UnityAds mediation so I think we can say that's some contract being broken, or behavior being inconsistent? Anyway, once you figure that out, this particular issue can be worked around easily by clever callback management, i.e. delaying the OnAdClosed handler by 1 frame. Sadly it wouldn't work if , say for another mediation network, OnAdRewarded were slower than OnAdClosed for more than 1 frame. A radical fix, I believe, would require an update in the GMA SDK itself to make sure their callbacks behave consistently across their own ads and mediation ads.

    Thanks again for bringing this up. If you don't mind, we'd really love to incorporate your solution into the coming update of EM :)
     
  16. Tarodev

    Tarodev

    Joined:
    Jul 30, 2015
    Posts:
    190
    Great asset, I purchased it today.

    I couldn't find a way to gather the current logged in players achievement state. Is there a way to grab all achievement information for the user including completed/progress etc?
     
  17. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, thanks for choosing Easy Mobile!

    Unfortunately, there's currently no API to check if an achievement has been completed or its current progress. For achievements that can only be unlocked once, it's safe to call UnlockAchievement multiple times, as subsequent calls will be ignored if the achievement has been unlocked previously.

    I don't think the underlying API of Game Center and Google Play Games provide such feature, but will check again. If they do have it, it should be fairly easy to expose via Easy Mobile API.
     
    Pacosmico likes this.
  18. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
    Hi! Can't get utilities working. Tried to change settings, but it always revert to default
     
  19. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
  20. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
  21. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, on what Unity version did you encounter this issue? Is there any special detail that can help reproduce it? For example, did you open two inspector windows at the same time? (we had a similar case before where the settings are not stored due to more than one EM settings window were opened at the same time).
     
  22. BurSari92

    BurSari92

    Joined:
    Sep 4, 2015
    Posts:
    3
    Hi,
    first off, thanks for this awesome tool and for your support.
    I bought this ~ 1 week ago with my second account, and i really regret nothing, its worth every coin you spend into it.

    However, I couldn´t figure out, how i can invite someone through script code. Could someone help me out?
    Thanks in advance :)
     
  23. Tarodev

    Tarodev

    Joined:
    Jul 30, 2015
    Posts:
    190
    Fantastic asset.

    Although I've found a problem which could be user error, but just to be sure:

    I have unity ads setup via admob mediation and 50% of the time the rewarded ad completed callback doesn't trigger. I went diving and found the 'OnAdClosed' event handler expects the 'OnAdRewarded' event to trigger first, which it sometimes does not. I fixed it by adding a slight delay to the 'OnAdClosed' event, like so:

    Code (CSharp):
    1.   private async void HandleAdMobRewardBasedVideoClosed(object sender, EventArgs args) {
    2.             await Task.Delay(200);
    3.             // Ad is not playing anymore.
    4.             mIsRewardedAdPlaying = false;
    5.  
    6.             // If the ad was completed, the "rewarded" event should be fired previously,
    7.             // setting the completed bool to true. Otherwise the ad was skipped.
    8.             // Events are raised on main thread.
    9.             Action callback = mIsRewardedAdCompleted ? GetRewardedAdCompletedAction() : GetRewardedAdSkippedAction();
    10.             RuntimeHelper.RunOnMainThread(callback);
    11.  
    12.             // Reset the completed flag.
    13.             mIsRewardedAdCompleted = false;
    14.  
    15.             if (OnRewardedAdClosed != null)
    16.                 OnRewardedAdClosed.Invoke(sender, args);
    17.         }
     
  24. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi @BurSari92 and thank you so much for choosing Easy Mobile!
    Can you elaborate on what specific service you're trying to do invitations?
     
  25. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi @Pendulum_ we explained this in a previous post. Basically AdMob events don't behave consistently between AdMob own ads and mediation ads (i.e. UnityAds) causing the issue. Please check out https://forum.unity.com/threads/eas...-for-mobile-games.453496/page-10#post-4272715. We will release an update soon to address this.
     
    Tarodev likes this.
  26. Fronne

    Fronne

    Joined:
    Sep 25, 2014
    Posts:
    112
    First of all, Great Asset and a real TimeSaver, I will write a review soon!

    I noticed at the Unity Dashboard there are two new Ad Placements from Unity available, Personalized placement and Banner. We are going to publish our new game this month for both iOS and Adroid, so I like to know when you will add support for these new Ad Placements, we have to decide if we have to implement Unity Banner ourselves or not. We use DataBase settings to be able to switch between Unity and AdMob Rewarded Ads and we want to use the same functionality for Banner Ads. Can you please let us know ASAP?

    Many Thanks in advance!
    Cheers!
    Franco Palmieri - Fronne
     

    Attached Files:

  27. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi

    Thank you so much for choosing Easy Mobile! Currently we are working a fairly big update (which will include native Contacts, Camera & Gallery APIs, among other stuff...) which we expect to release soon. After that we will update the Ads module with Unity banner ads and AppLovin support, which should be out some time towards the end of April.
     
    Fronne likes this.
  28. Fronne

    Fronne

    Joined:
    Sep 25, 2014
    Posts:
    112
    Hi,

    Thanks for telling us that so fast! I implemented the Unity Banner myself, it was very easy to do. However, the AdMob Banner has currently more options, so I stick with that for now...

    Best of luck with the Big Update(), I'm looking forward to see what's new! I'm pretty sure EM will be even better than it already is today...

    Cheers!
    Franco Palmieri - Fronne
     
    pt5011 likes this.
  29. Tarodev

    Tarodev

    Joined:
    Jul 30, 2015
    Posts:
    190
    I have almost every feature of easy mobile up and running in my game, but when I enable Saved Games google fails to authenticate. If I disable it I'm able to authenticate just fine. My game has saved games turned on (was turned on last month so it's far beyond the 24 hour wait time). Has anybody else experienced this problem?
     
  30. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi,

    Seems like it's caused by some bug of the Drive API. They suggest a workaround, please check here https://github.com/playgameservices/play-games-plugin-for-unity/issues/2429#issuecomment-470082226. A fix should be out soon hopefully.
     
  31. Skwayn2

    Skwayn2

    Joined:
    Dec 9, 2015
    Posts:
    2
    Hi!
    I'm very interested in buying this asset but there's one feature that I need which I don't think is supported.

    I want to display a native Dialog with a picker inside of it (like this https://developer.android.com/guide/topics/ui/controls/pickers.html#java). The example is for andriod but I need it for both Android and iOS. I also want to change what's displayed inside this picker (just put my own choices inside of it, not just time or date).

    Is it possible with EasyMobile? I haven't seen it in the doc but I'm asking just in case.
    If not, do you think it would be feasible in the near future?

    Thanks.
    (Don't worry, I'd understand very well if it wasn't in your plans and you didn't want to implement it for only one user, I'm just kinda desperate right now because I didn't find any plugin that does that haha).
     
  32. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, thanks for your interest in EM! Yes the feature is not available now, but it sounds useful. I added it to our "Requested Features" list. Hopefully we'll have it in a future update :)
     
    Kim-Riber likes this.
  33. Skwayn2

    Skwayn2

    Joined:
    Dec 9, 2015
    Posts:
    2
    Thank you! I'm looking forward to it then.
     
  34. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
    Hi,
    The system is working fine in some devices, but in others, the texture returned by GameServices.LocalUser.image is full of (0,0,0,0) pixels.
    I´m doing this in order to get info about the [0,0] pixel color:

    Texture2D tex = GameServices.LocalUser.image; Color pixColor = tex.GetPixel(0, 0);

    The problem is that logging in with the same user in different devices, this pixel has different info. When it works, pixel color has a color with the alpha value 1 (applying the texture to an Image it works perfectly), but in other (better and newer) devices, this pixel info is (0,0,0,0), and when I apply the texture to the UI image it´s basically a transparent square.
     
  35. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, thank you for choosing Easy Mobile!

    Please note that if the user image is not available, or couldn't be loaded for some reason, a default black image will be returned which may be what happened in your test.
     
  36. lightmont

    lightmont

    Joined:
    Oct 8, 2016
    Posts:
    13
    Hi there!
    Easy Mobile seems to be a well-designed asset to work with.
    We may be thinking of using it to manage notifications in one of our projects. We were looking into its documentation specifically to understand whether it allows to send local notifications with emojis within the text, being it the title, subtitle or body.

    Does it allow to add emojis to the notifications text? If not, are there any plans to add that feature?
    Or perhaps it's something already doable with the asset's API.

    Thank you.
     
  37. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
    I undestand that, but the image is black always in the same devices, and never in others... (same code, same user) that´s my point. Probably is Unity side problem.
     
  38. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, have you tried inserting the unicode values of the emoji into the notification texts? As suggested here https://www.pushwoosh.com/blog/emoji-in-push-notifications/. Admittedly I haven't tried, but this looks promising.
     
  39. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    So you mean the issue is specific to some particular devices?
     
  40. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
    Exactly, actually newer and better devices always return a black texture. I only tested on Android devices by the way.

    Same happens working directly with Google API (not using EasyMobile Pro), so probably it's Unity or Google issue.
     
  41. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
    I want also gather users rank position within a scoreboard.
    With GameServices.LoadLocalUserScore(...) I get the IScore, but even if "value" property is correct (user´s score), the "rank" value always is 1. is there any other way to obtain this?
     
  42. lightmont

    lightmont

    Joined:
    Oct 8, 2016
    Posts:
    13
    Thanks, we have look into it and there is actually a way to insert emojis into any notification text.

    We are not sure why but there seems to be a Unity limitation somehow about inserting emojis characters in Text component fields.

    We have initially structured the notifications as being scriptable objects with a few serialized fields, some of them being string fields for the Title, possible Subtitle and Body of the notification. We would then use the text in those fields as content of the actual notification object managed by Easy Mobile.

    The problem was that Unity wouldn't allow to add emojis in serialized text fields from the Inspector (at least this is what we have find until now, and we stopped look into that because we then find a solution).
    Yes, we have tried to use different kind of Unicode values, like "\uD83C\uDF84", but they were always shown as plain text "\uD83C\uDF84" in the actual notification.

    But we found that if a string variable is created within a script, and its text is directly written inside the script as a normal c# string value, in that case emojis are correctly shown, both inside the script in the string value and more importantly in the notifications on the device.

    Example in the attached screen.


    So at the end of the day, Easy Mobile has nothing to do with the possibility to show emojis. Easy Mobile allows to show emojis if the text that is given to it contains the actual emoji character.


    Wrote a bit, maybe other people may find this information useful.
     

    Attached Files:

  43. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Weird. Is this iOS or Android? Have you tried GameServices.LoadScores yet?
     
  44. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Thanks for the detailed explanation! I'm sure if will be useful for many other users :)
     
    lightmont likes this.
  45. Tarodev

    Tarodev

    Joined:
    Jul 30, 2015
    Posts:
    190
    I'm trying to get the ServerAuthCode from an android login but couldn't find an implemented way to do it with EasyMobile, so I had to add these lines to the GameService init() function:
    Code (CSharp):
    1. gpgsConfigBuilder.AddOauthScope("profile");
    2. gpgsConfigBuilder.RequestServerAuthCode(false);
    Once they've been added though play games fails to sign in. Am I missing something here?

    EDIT: Found the problem. For some reason Easy Mobile was not retaining the client ID i was placing in the inspector. I had to manually do it in the play games settings window.
     
    Last edited: Mar 31, 2019
    grofie likes this.
  46. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Do you mean the "Web Client ID"? Did you click "Setup Google Play Games" after setting that ID?
     
  47. Jawadov

    Jawadov

    Joined:
    Jan 3, 2016
    Posts:
    6
    Hi, the latest version of this plugin not working , every time the game crashed, i use google mobile ads only .
     
  48. shreedx

    shreedx

    Joined:
    Feb 7, 2018
    Posts:
    4
    Hello, I am using EasyMobile Pro and loved it so far, but when it comes to Unity Ads implementation (or any other network really), I can't seem to get it working. Unity ads - when used directly without Easy Mobile - work and I can see the dummy ads in editor, but once I try to show them through EasyMobile scripting API, they never show. Test mode is on. It seems like Advertising.IsRewardedAdReady(); never returns true. Should I try building it on a device? Does EasyMobile not support the in-editor test ads Unity serves? At first, I thought it is a problem with me using 2019.2 version, so I reverted back to 2018.3, but the problem persists. I had the same issues when I tried Fyber (no ads, not even the implementation test screen they provide and easymobile has a on/off tick for it). Thank you.
     
  49. Etsai

    Etsai

    Joined:
    Sep 12, 2014
    Posts:
    24
    I´m working on Android right now (but the app is going to be for both platforms).
    Yes, as an alternative I used GameServices.LoadScores. But this method downloads a set of the scoreboard defined manually with a range (there is no way to download it completely). As I don´t know my rank I need to check entries one by one comparing userIDs... I don´t think it´s the correct way.
     
  50. pt5011

    pt5011

    Joined:
    Aug 7, 2015
    Posts:
    405
    Hi, can you share the crashlog? Note that if you're using GoogleMobileAds SDK for Unity version 3.16 or newer, you need to add a GADApplicationIdentifier key into Info.plist with value being the AdMob App ID for iOS. More info https://developers.google.com/admob/ios/quick-start. This is a new requirement of AdMob and we look to automate this step in a future update of EM.