Search Unity

[Lunar Mobile Console] High-performance Unity iOS/Android logger built with native platform UI

Discussion in 'Assets and Asset Store' started by weeeBox, Aug 13, 2015.

?

How would you prefer the plugin to be integrated into your project?

  1. Open Source: I can modify files and have them compiled every time Unity builds my game

  2. Binaries: I still have an access to the source code on Github but can't modify them in my project

  3. None: I don't need your plugin - go to hell!

Results are only viewable after voting.
  1. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I've tried the manifest. Somehow it screws up the touch delivery for the the plugin. Trying to figure that out...
     
  2. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    @adamt, the problem might be in using com.unity3d.player.UnityPlayerNativeActivity instead of com.unity3d.player.UnityPlayerActivity.

    Changing your manifest from:
    Code (CSharp):
    1.  
    2. <activity
    3.         android:name="com.unity3d.player.UnityPlayerNativeActivity"
    4.         android:label="@string/app_name">
    5.     ...
    6. </activity>
    to

    Code (CSharp):
    1.  
    2. <activity
    3.         android:name="com.unity3d.player.UnityPlayerActivity"
    4.         android:label="@string/app_name">
    5.     ...
    6. </activity>
    Seemed to fix the problem.

    I'm not an expert here but why did you pick UnityPlayerNativeActivity in the first place?

    From Unity docs:

    It is also possible to create your own subclass of UnityPlayerNativeActivity. This will have much the same effect as subclassing UnityPlayerActivity but with improved input latency.
     
  3. adamt

    adamt

    Joined:
    Apr 1, 2014
    Posts:
    116
    Looks like it's working just fine, now!

    The use of UnityPlayerNativeActivity was a holdover from when I was trying to use Amazon SNS for push notifications before switching to Parse. Unfortunately, a lot plugins seem to want to install their AndroidManifest.xml file at the root of your project's Plugins directory, which tends to cause all kinds of problems with other plugins. Since I'd already had HockeyApp additions in the manifest, I just tried to add Parse into the mix and missed the difference between its use of UnityPlayerActivity and Amazon's UnityPlayerNativeActivity.

    Edit: But to answer your question as to why Amazon might've used UnityPlayerNativeActivity, the Unity docs make it sound as though it's more performant than UnityPlayerActivity. And if you're not targeting Android versions older than Gingerbread, maybe it's the way to go?
     
    Last edited: Nov 25, 2015
  4. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    It seems like UnityPlayerNativeActivity breaks touch delivery to the native layer (that's why the swipe gesture and warning bar didn't work).

    My plugin has no dependencies (both iOS and Android) and don't trash the editor menu. I'm trying to play nice with other plugins and don't piss off users. There will be one major release in the next couple of days (more fixes and better stack trace support). After that I plan to launch a Pro version of the plugin with some advanced features (like floating window, user defined filters and actions). The old plugin will remain free to use and open source.

    @adamt, thanks for all your help and feedback: really appreciated that!
     
  5. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    I'm happy to announce the release of version 0.0.8b!

    Improvements:

    • Android: added stack trace info for every log entry.
    • iOS: improved stack trace info for every log entry.
    Fixes:
    • Android: fixed touches passing through some are of the console into the scene.




    The update is still pending but you can pull the latest package from GitHub.
     
    Last edited: Aug 19, 2016
  6. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    The update is live now
     
  7. Ahmio

    Ahmio

    Joined:
    Mar 16, 2014
    Posts:
    7
    This is awesome!
     
  8. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Thanks! Really appreciated! :)
     
  9. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    I'm happy to announce the release of version 0.0.9b!

    Improvements:
    • Added an option to disable multi touch gesture recognition.
    Fixes:
    • Android: fixed a conflicting between 2-finger swipe down and zoom (pinch) gesture recognition.
    • Editor: fixed 'Report bug...' url
    The update is still pending but you can pull the latest package from GitHub.
     
    Last edited: Aug 19, 2016
  10. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I've made another quick release on Github (as requested by one of the users). The update 0.0.9b is still pending so I would probably include this one on the next release.

    Improvements:
    • Added LunarConsole.Clear() method to clear the console output.
     
  11. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I'd like to thank all the people who took their time and rated the plugin! Thanks you, guys!

    If you don't like something about the plugin - please, don't just put one star but let me know what is wrong with it so I can fix it!
     
  12. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    Lunar Console v0.0.9b is now live!

    Improvements:
    • Added an option to disable multi touch gesture recognition.
    Fixes:
    • Android: fixed a conflicting between 2-finger swipe down and zoom (pinch) gesture recognition.
    • Editor: fixed 'Report bug...' url
     
  13. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hello everyone!

    I'm working on a "collapse" feature right now. iOS is pretty much done: needs more testing and then it would be published on the Asset Store and Github

     
  14. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    I'm happy to announce the release of version 0.1.0b!

    Improvements:
    • iOS: collapse similar entries option
    The update is still pending but you can pull the latest package from GitHub.
     
    Last edited: Aug 19, 2016
  15. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    Lunar Console v0.1.0b is now live!

    Improvements:
    • iOS: collapse similar entries option
     
  16. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Android logs collapsing is almost ready: still need some final touches and testing
     
  17. TheValar

    TheValar

    Joined:
    Nov 12, 2012
    Posts:
    760
    Just coming across this. It looks awesome and super useful! I can't wait to download it and try it out!
     
  18. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Awesome! Let me know if everything works for you or if you have any questions.
     
  19. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Testing Android collapse feature. Hope to release in the next couple of days :)

     
  20. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    I'm happy to announce the release of version 0.2.0b!

    Improvements:
    • Android: collapse similar entries option
    The update is still pending but you can pull the latest package from GitHub.
     
    Last edited: Aug 19, 2016
  21. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Wow, how in the world did this slip under my radar? I have been making clunky debug output gui's for unity mobile... for years! I end up complicating editor testing by rerouting error messages through a handler that displays them on every platform, and it has been a headache for me. I have searched and found similar assets to this, but this is free? This seems so simple and clean? I am gonna thank you ahead of time, and go download and test this out soon! Regardless how well it works, thanks for your effort and for sharing!
     
  22. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Thanks for the feedback: it really made my day :)

    Yes, everything is free and 100% open source. Give it a try and let me know what you think (especially if something doesn't work as expected).

    Asset Store updates are bit slow so if you want to have the latest stuff as it's released - check the project's Github releases page:

    https://github.com/SpaceMadness/lunar-unity-console/releases

    Thanks again and have a great time of the day!
     
  23. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Sure I'll grab the latest from github and literally start using it right now. I do have one question - I saw your other (awesome looking) asset Lunar Plugin, and I am curious if these two plugins will be combined/compatible on mobile? Perhaps allowing you to do sorta a two finger swipe upwards to get to the console? Anyway I'll let you know if I break anything :)

    EDIT: Awesome. You rock sir, you rock. I owe you a beer. This is super easy to integrate, super easy to use, and already providing me with useful info I otherwise would have to jump through hoops for - and even an email log feature? Wow! Greatest asset I have seen in some time, and best price to boot haha
     
    Last edited: Feb 15, 2016
  24. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Great to hear that! Thanks! Please, consider rating the plugin on the store if you really like it.

    I'm want to blend Lunar plugin with the console plugin to create a great debugging experience for mobile. So stay tuned!

    Don't hesitate to contact me if you have any questions or suggestions.
     
    MD_Reptile likes this.
  25. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
  26. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    It went great. I'm thoroughly impressed. It's helped squash a few bugs already, and i'm just getting started with it. I'll certainly rate on the store.

    Can't wait to see the future versions!
     
  27. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
  28. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Version 0.2.0b is now live!

    Improvements:
    • Android: collapse similar entries option
     
  29. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    @MD_Reptile, thanks for the store page rating: really appreciated! :)
     
  30. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    No problem! Been using it daily, you earned it!
     
  31. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Lunar Console finally got 5 stars on the Asset Store! Thank you, guys! :D

     
  32. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Ahoy!

    Here's some progress on a new feature called "Quick Actions": an easy way to add "cheat" buttons to Lunar Mobile Console

     
    MD_Reptile likes this.
  33. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I didn't expect that but everything turned to be fine: my hope in humanity has been just restored! :)

    Thanks @KrlinM for taking the time and figuring everything out and @MD_Reptile for the support (I really appreciate it)!

     
  34. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    No problemo - I'll probably never make another project without using your asset, it's super valuable to my debugging! Figure since it's free the least I could do is support the $@!+ out of it ;P
     
    weeeBox likes this.
  35. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Thanks, bro! :)
     
  36. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    UI tests
    ...that's what I badly miss in Unity. Check out those boring vids: me working really hard to make the plugin stable!

    iOS:


    Android:
     
  37. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Found a small scrolling bug. Preparing an update...
     
    MD_Reptile likes this.
  38. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Hey there!

    I'm happy to announce the release of version 0.3.0b!

    Fixes:
    • Fixed scroll lock bug.
    Improvements:
    • Added LunarConsole.onConsoleOpened and LunarConsole.onConsoleClosed callbacks.
    Changes:
    • Auto scrolling is turned ON every time console is opened (would be configurable in a future release).
    • Renamed 'LunarConsole' to 'LunarConsolePlugin'.
    • Renamed 'LunarConsoleInternal' to 'LunarConsolePluginInternal'.
    The update is still pending but you can pull the latest package from GitHub.

    Please, rate and review the plugin on the Asset Store!
     
    Last edited: Aug 19, 2016
  39. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
  40. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Bug with Play Services I am getting when I import Lunar Mobile Console from the Asset Store:


    Code (csharp):
    1. FileNotFoundException: Could not load file or assembly 'GooglePlayServices' or one of its dependencies. The system cannot find the file specified.
    2. System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/AppDomain.cs:746)
    3. System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/AppDomain.cs:733)
    4. (wrapper remoting-invoke-with-check) System.AppDomain:Load (string,System.Security.Policy.Evidence)
    5. System.Reflection.Assembly.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/Assembly.cs:584)
    6. System.Activator.CreateInstance (System.String assemblyName, System.String typeName, Boolean ignoreCase, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes, System.Security.Policy.Evidence securityInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Activator.cs:170)
    7. System.Activator.CreateInstance (System.String assemblyName, System.String typeName, System.Object[] activationAttributes) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Activator.cs:158)
    8. System.Activator.CreateInstance (System.String assemblyName, System.String typeName) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Activator.cs:150)
    9. GooglePlayServices.PlayServicesResolver.get_Resolver () (at Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs:96)
    10. GooglePlayServices.PlayServicesResolver.OnPostprocessAllAssets (System.String[] importedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromAssetPaths) (at Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs:115)
    11. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    12. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    13. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    14. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    15. UnityEditor.AssetPostprocessingInternal.PostprocessAllAssets (System.String[] importedAssets, System.String[] addedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromPathAssets) (at C:/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:27)
    16. UnityEditor.AssetDatabase:CreateFolder(String, String)
    17. LunarConsoleInternal.AndroidPlugin:AddPlugin(String, String) (at Assets/LunarConsole/Editor/AndroidPlugin.cs:90)
    18. LunarConsoleInternal.AndroidPlugin:UpdateFiles(Boolean) (at Assets/LunarConsole/Editor/AndroidPlugin.cs:59)
    19. LunarConsoleInternal.AndroidPlugin:UpdateFiles() (at Assets/LunarConsole/Editor/AndroidPlugin.cs:43)
    20. LunarConsoleInternal.Autorun:.cctor() (at Assets/LunarConsole/Editor/Autorun.cs:40)
    21. UnityEditor.EditorAssemblies:SetLoadedEditorAssemblies(Assembly[])

    It could be of my own doing somehow, but I am wondering where I went wrong :X
     
    Last edited: Apr 19, 2016
  41. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Yeah, I saw this a couple times and not really sure why it's happening. I don't use GooglePlayServices or Support Library. It doesn't seem to be harmful nor breaking anything for me. What are the other plugins you use in your project?
     
  42. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Just your own, and Play Services Plugin (Latest) with GoogleAds-Mobile-Unity. I imported Play Services, then the ad package, and it seemed to work fine... then Lunar Console was last, and the error popped up at first.
     
  43. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Thanks. I'll look at it asap!

    Do you still have everything working as expected after the error?
     
  44. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Doesn't seem to break anything after the error, I just ran the game in editor and it seems to work fine... I'll have to test if ad's show up on mobile or not, and if the console itself works, but idk... maybe it can be ignored??? Yikes I hate to release anything though, until I know for sure it is all good!
     
  45. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
  46. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I'll dig it a bit and get back to you! Thanks for pointing it out!
     
  47. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Thanks for checking it out for me! I am testing on device right now, and everything (including the console) seem to work fine... so as far as I can tell it is nothing more than an annoyance right now, as long as you don't notice anything about that error that could cause any problem.
     
  48. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Sure! I would definitely prefer it to be resolved than ignored :)
     
    MD_Reptile likes this.
  49. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    Yes, I can confirm the bug in Google Play Games plugin.

    When you enable Lunar Console for Android - the plugin creates a couple of folders in the Plugins directory of the project and refreshes asset database (more info here) which triggers this code from Google Play plugin.

    Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs
    :

    Code (CSharp):
    1.  
    2. /// <summary>
    3. /// Called by Unity when all assets have been updated. This
    4. /// is used to kick off resolving the dependendencies declared.
    5. /// </summary>
    6. /// <param name="importedAssets">Imported assets. (unused)</param>
    7. /// <param name="deletedAssets">Deleted assets. (unused)</param>
    8. /// <param name="movedAssets">Moved assets. (unused)</param>
    9. /// <param name="movedFromAssetPaths">Moved from asset paths. (unused)</param>
    10. static void OnPostprocessAllAssets(string[] importedAssets,
    11.                                    string[] deletedAssets,
    12.                                    string[] movedAssets,
    13.                                    string[] movedFromAssetPaths)
    14. {
    15.     if (!Resolver.ShouldAutoResolve(importedAssets, deletedAssets,
    16.             movedAssets, movedFromAssetPaths)) // THIS LINE THROWS THE EXCEPTION
    17.     {
    18.         return;
    19.     }
    20.  
    21.     Resolver.DoResolution(svcSupport,
    22.         "Assets/Plugins/Android",
    23.         HandleOverwriteConfirmation);
    24.  
    25.     AssetDatabase.Refresh();
    26.     Debug.Log("Android Jar Dependencies: Resolution Complete");
    27. }
    28.  
    29. /// <summary>
    30. /// Gets the resolver.
    31. /// </summary>
    32. /// <value>The resolver.</value>
    33. static IResolver Resolver
    34. {
    35.     get
    36.     {
    37.         if (_resolver == null)
    38.         {
    39.             // create the latest resolver known.
    40.             // THIS ONE CAUSES TROUBLE: they should wrap it with try-catch clause
    41.             _resolver = Activator.CreateInstance("GooglePlayServices", CurrentResolverName) as IResolver;
    42.         }
    43.         return _resolver;
    44.     }
    45. }
    46.  
    47.  
    I'm preparing a pull request for the Google Play Games repo now.

    I can't do much on Lunar plugin side (this exception is caught before I can do anything about it). On the bright side, this issue won't affect Lunar at all :)
     
  50. weeeBox

    weeeBox

    Joined:
    Jun 2, 2014
    Posts:
    271
    I can't really find this code in the repo. Guess will leave it as is :)