Search Unity

NoesisGUI : XAML-based User Interface [RELEASED]

Discussion in 'Assets and Asset Store' started by sfernandez, Jul 23, 2013.

  1. spacrexplorer

    spacrexplorer

    Joined:
    May 23, 2014
    Posts:
    1
    Hi, I would love to create some tutorials once I get to know NoesisGUI better. I have used XAML since it's alpha days and implemented it from interface designer/graphic designer/developer point of view since 2007.

    Haven't used XAML the last 3 years and sorely missed the framework.

    I am looking for a Unity UI framework now that I finally have a project that justifies me getting my hands dirty with Unity

    NoesisGUI combines my love for XAML with Unity

    I would love to see if a lot of my old custom components and utilisation of MVVM framework works with NoesisGUI....

     
  2. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    The correct way for this would be creating a new kind of asset in Unity for the XAMLs. But that is not allowed in Unity, asset types are hard-coded. What we do is having the .xaml in the project as normal files and detect changes with an AssetPostProcessor that copies the optimized xaml (a binary version) to the /StreamingAssets folder.

    This implies that XAMLs cannot be loaded at runtime because the parser is not available in the game. This is usually not a problem because everything that can be done in a XAML can be replicated by code.

    As soon as the mod is done inside Unity that is no problem. The preprocessed xaml (stored in the streamingassets folder) is what should be distributed and the part that your game will understand.

    This is already being done by several games (image modding). In Unity there is an ImageSource that allows you to set a Unity Texture to be displayed by the XAML. It is explained at the end of this document: http://www.noesisengine.com/docs/Gui.Core.ImagesTutorial.html

    For now this is not possible. You cannot assign custom shaders to XAML (though custom effects are in the roadmap). Although screen post process effects done by Unity do affects our GUI. You can also render our GUI to a texture and then use it as a normal sprite.

    Yes, you can render Unity3D cameras inside a panel. The trick is using a Render Texture as an intermmediate step. It is shown here: http://www.noesisengine.com/forums/viewtopic.php?f=12&t=294&sid=c4faa393f811b117da26bb78c160a626

    Yes, you can create dialogs; "virtual dialogs" because they are rendered inside the main window created by the Unity player.

    This is handled by using Hit Testing. It is explained in this tutorial (http://www.noesisengine.com/docs/Gui.Core.Unity3DTutorial.html), in the HitTest section.

    Thanks!
     
  3. VacuumBreather

    VacuumBreather

    Joined:
    Oct 30, 2013
    Posts:
    68
    That's unfortunate since the only way a modder would be able to get that into the game is having Unity Pro, both for having your postprocessor and for being able to create an assetbundle, otherwise there is no way this would work. that's not really modding... sigh... I hate how modding unfriendly engines are... for me this basically means the UI cannot be changed after the fact. anything that requires paid tools or frameworks is no longer modding.

    Thanks for the info anyway... is there any reason this postprocessing cannot be done on the fly within a game? Is the necessary code editor only code?
     
  4. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    The limitation happens because the XamlParser is not part of the library deployed to the standalone version (to reduce the size). But is is available in our SDK, and in fact can be integrated in the final runtime. We provide access to the XamlParser in pro licenses of noesisGUI.

    In fact, the parser is included in the binaries that are part of the Editor... problem is, what happens if I create a new game that understands XAML and is able to load XAML directly and I sell that game for free... In this case nobody would need noesisGUI. :)
     
  5. VacuumBreather

    VacuumBreather

    Joined:
    Oct 30, 2013
    Posts:
    68
    Well this reasoning I cannot quite follow. Just because the game understands XAML you cannot use the game to build another game using the first game as the UI framwork now can you. That's like saying when you build an application in WPF that can load XAML dynamically (which is possible), then you never need .NET anymore...

    All this restriction does is make the game sealed once it is built. It's bad enough Unity has such a crappy support for dynamic asset loading. On the desktop platform modability is a huge deal, and the more is hardcoded and frozen after release the less modable the game is.

    XAML is the ideal UI base to make a game's UI perfectly modable. XAML was created to separate the visuals completely from the data and logic. With it's databinding a modder could completely redo the entire UI, make it look completely different, and as long as he knows the API of the ViewModel he can databind to the correct data and commands and make the UI just work, because the functionality never changed. That's a modders dream. By not being able to use that a game misses out on a fantastic innovation in modability, but ah well...

    I guess these days the desktop platform and mod support are only an afterthought for most developers. Very sad indeed.
     
    Last edited: May 30, 2014
  6. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Just tried sending you a PM but it seems that you have them disabled. Could you please contact us?

    I am very interested in talking with you in private.

    Thanks!
     
  7. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Well, the truth is that all our verified clients have access to our SDK. And the SDK includes a command line tool for building XAML. So, what you are asking for is possible. You would have to integrate our builder inside the mod kit.

    I will continue discussing this with you and the rest of topics in our forum. Just a bit later.

    Thanks!
     
  8. ai_enabled

    ai_enabled

    Joined:
    Sep 16, 2013
    Posts:
    15
    jdesantos, any updates on the NoesisGUI 1.2.0 release date?
     
  9. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    The big changes are almost done: improved c# API, improved renderer, DX11, new data base layout. We are now working in rest of features (c# converters, improved styles...) and expect to release soon a beta.

    The C++ beta for 1.2 will be available very soon.

    We are also working in the 1.1.9 version with bugfixes from the reports of our users.

    Thanks!
     
  10. ddesmond

    ddesmond

    Joined:
    Feb 9, 2010
    Posts:
    163
    The changes sound great, what is the ETA on Windows store and Windows phone support?
     
  11. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Will DX11 be optional ?
     
  12. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  13. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Yes, DX9 and GL implementations will still be there as fallbacks.
     
  14. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Could you please contact us? We can't reach privately you using this forum.
     
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Nice, thanks :)
     
  16. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    NoesisGUI v1.1.9

    >> Buy from Asset Store

    • Added constructor for RotateTransform and SkewTransform with parameters for easier initialization.
    • Added support for serializing boxed items in a collection.
    • SelectionBoxItemTemplate is now a read-only property like in WPF.
    • Dependency to libbfd eliminated in Linux.
    • Reading from the clipboard implemented in Linux.
    • Support for setting log filename and dumps folder by creating a noesis.ini in StreamingAssets folder.
    • Now XAML are processed after their corresponding .cs, if any, is built by Unity.
    • Added support for split application binaries in Android.
    • Renamed mobile exported function Noesis_UnityRenderEvent to avoid name conflicts with other third parties.
    • UnityRenderHook library renamed to NoesisUnityRenderHook.
    • Software keyboard management re-factorized to facilitate user override.
    • Unity tutorial updated with information about how to override default software keyboard behavior.
    • Fixed: Problem with consecutive MouseDown events in OS X standalone.
    • Fixed: Crash in bindings with nested paths.
    • Fixed: RoutedEventConverter working in events with a namespace prefix.
    • Fixed: Binding to inherited DataContext not resolved on Freezables.
    • Fixed: Bindings don't update when Path doesn't resolve the first time.
    • Fixed: ProgressBar Indicator element was not updated after modifying Minimum or Maximum properties.
    • Fixed: ProgressBar default template was making the control to grow to infinite when Value==Maximum.
    • Fixed: Resource look-up from inside a DataTemplate was broken.
    • Fixed: GridLengthConverter was not taking into account Auto (NaN) value when converting from a numeric value.
    • Fixed: Support for complex namespace (A.B.C) when using a prefix in PropertyPath.
    • Fixed: Notifying of a property change defined in the base class was crashing.
    • Fixed: Mouse and keyboard events handled properly in Linux.
     
  17. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Listening to our clients, we created a video tutorial about Getting Started using NoesisGUI in Unity3d.

    Hope you like it!

     
    zyzyx likes this.
  18. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    NoesisGUI is ON SALE now! Get it for just $75 (70% OFF)!

    We are glad to announce that we have been included in the August MADNESS SALE, giving the opportunity to more people to get noesisGUI and join our community.

    Don't miss it ;)
     
  19. mkgame

    mkgame

    Joined:
    Feb 24, 2014
    Posts:
    592
    As a developer i would afraid to use your GUI at the time:

    - Normaly we have a project where we want to implement the GUI system and we don't want to start with GUI.
    - Using an external tool to create the GUI in Unity is defintely not what i want.
    - Loosing all control because of the external plugin, which must be compatible for target systems, is somehow not the way how the assets are made for Unity.
    - We have no control over the plugins (no source code), if they have bugs and you are not anymore provide this asset, we have to exchange your GUI solution. E.g. if NGUI will not provided anymore, i can hack it for my needs. (Im not an NGUI fan, it's hard to make a GUI with, even the simplest things (e.g. moving from one windows to another in an smart way) can be a challenge.)
    - It's just for the pro version.

    I can understand you, that you want to protect your 'fast' plugin code, but that robs our trust. We need full control, because the assets are mostly not that what we can trust generally.
     
  20. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    No problem at all. You can create the Blend project in a new place, add the 'Assets 'folder, close the project and move the .vcproj to the location where your Unity project already exists. Another option, not described in the video for simplicity, is linking items to the project as described in this tutorial.

    This is like asking a 3dsMax inside Unity. Blend is an order of magnitude better than Unity for UI designing.

    Not all Assets in the store are compatible with all the platforms (specially the native ones). In fact, many plugins that claim support for all platforms are buggy in some of them.

    We provide source code for Unity layer (.cs files). Native source code is also available in our professional licenses. We have several studios that opted for it.

    yes, this is a big inconvenience we are trying to solve. Please, help us here.
     
  21. daeuk

    daeuk

    Joined:
    Mar 3, 2013
    Posts:
    67
    how is noesisGUI compared to the (incoming) new unity GUI?
     
  22. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    uGUI is NGUI integrated inside Unity. Well, not exactly 100% equal but very similar. In fact, they hired the NGUI developer for that.
     
  23. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Another demo, this one demonstrate cool game menus. It can be downloaded from our forums.

     
  24. Nezabyte

    Nezabyte

    Joined:
    Aug 21, 2012
    Posts:
    110
    Any new news on this working better with uFrame?
     
  25. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    I talked with the uFrame developer the last week about improving our compatibility. We both agree that uFrame and NoesisGUI and perfect partners. Our goals are clear, and as soon as this Madness Week finish we will start working together.

    Meanwhile, different workarounds are explained in our forums.
     
  26. Nezabyte

    Nezabyte

    Joined:
    Aug 21, 2012
    Posts:
    110
    Very good news, thanks
     
  27. Graph

    Graph

    Joined:
    Jun 8, 2014
    Posts:
    154
    this is awesome; odd that i didn't see this one before;
    i'd have loved to use your framework unfortunately tho for my private projects i'm using the free version;
    additionally hitting all mobile markets at once (well.. android first to iron out rough bugs :p) is imperative, so not supporting wp8 is a bit of a downer.

    i have however marked this thread and will continue to follow future updates. looking forward to more declarative awesomeness.
     
  28. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Thanks for your kind words!

    Please, help us here. We are trying to convince Unity developer to change this absurd limitation. If we don't achieve it, we think there is a way to emulate native plugins in Unity free.

    Agree with you. Windows Phone 8 and Windows Store are now under development, in fact, in a quite advanced state.
     
  29. Graph

    Graph

    Joined:
    Jun 8, 2014
    Posts:
    154
    you could just pInvoke, no?!
    i know on iOS that won't work but oughta be possible on others

    cast my vote, maybe it'll come to be in 5, who knows.
     
  30. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    More videos showing noesisGUI. This time in a real game. (If you like it please support the developers in steam or indiegogo).

     
  31. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Yes, problem is not P/Invoke. With Low-Level Native Plugins, Unity calls you in the render thread for several events. In Unity Free those callbacks are not being invoked. But we could hook DirectX calls and simulate the calls. Yet not tested but it could work. Although not sure if we would be accepted in the Store with this hack. :)
     
  32. Cargh

    Cargh

    Joined:
    May 17, 2011
    Posts:
    36
    jdesantos do you have any plans to add more detailed tutorial videos for noesisgui over the next few weeks. So far I have only been able to find one tutorial video for Unity in addition to the documentation page on your site.

    Also will you be adding more sample unity GUI projects. Such as a Lobby Kit and MMO Kit, similar to what is being provided by other similar GUI solutions.
     
  33. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    We have plans for adding more tutorials yes. And of course more samples, right now you can find a dozen of samples included in our package and a lot more in our forum. If you become a customer of our package you can request specific samples there and we will try to have them.
     
  34. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    NoesisGUI v1.1.10

    >> Buy from Asset Store
    Now ON SALE! 70% OFF!
    • BaseButton.Command exported to Unity/C#.
    • Implemented mechanism to detect package upgrades. - Fixed: Setter serializing a Command set in its Value member.
    • Fixed: Container not found when calling ItemsControl.GetContainerFromItem passing the container itself.
    • Fixed: TreeViewItem failing to select the item if already had the focus.
    • Fixed: SelectionChanged event not working when using a ComboBox with template.
    • Fixed: Crash on application exit.
    • Fixed: Mac Shortcuts not working (CMD+key).
     
  35. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    I'm considering buying NoesisGUI from the asset store for my game which currently uses inControl for gamepad input, how does NoesisGUI handle gamepad input in Unity? Can I have a C# script in Unity hooked up to the NoesisGUI that handles input?
     
  36. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    I have answered you in the post you opened in our forums: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=483
     
  37. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Why we think you should adopt noesisGUI:

    1. NoesisGUI is an active project. Since our first official release, less than a year ago, we have made public 16 releases. The last one, a few days ago.

    2. There is a professional team behind NoesisGUI, fully dedicated to it. All our clients usually receive support in our forums or bugtracker in less than 24h. Premium support is also available for those clients that need it: direct communication with our engineers and hotfix generation. We listen to our customers.

    3. NoesisGUI is based on a standard: XAML and WPF. This gives the following advantages:

    * Internet can be used for getting help. You can google for anything related to noesisGUI and probably you will find a solution.
    * Being the API immutable you won't have to code again all your GUI when you upgrade to a new version of noesisGUI.
    * Professional and robust tools are available for editing.

    4. We provided extensive documentation, tutorials and examples.

    5. We are a native plugin optimized for performance in all our supported platforms.

    6. Although our price may be higher than our competence. Think about it twice, because with NoesisGUI you won't need any extra packages as it occurs with other alternatives: Dynamic Text, Inventory, Energy Bars, MiniMap, Color Picker, Charts, MVVM, Data Binding, Themes. You can do all that and a lot more with NoesisGUI.

    7. And last but not least. We are On Sale right now: 70$! A lot cheaper than our competence.
     
  38. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
  39. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  40. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
  41. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Here you can find a working sample.
     
  42. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Standalone Win32 is working for you this way? Because las time I tried, native plugin hooks were not bein invoked properly...
     
  43. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Will try with the latest version later.
     
  44. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    True, I have installed a Unity Free, created new project, imported noesisGUI and generated a win32 standalone. It is working perfectly.

    Inside the editor I am getting: License error. This plugin is only supported in Unity Pro!
     
  45. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    NoesisGUI is now working with inControl! Thank You for taking the time to get it working so quickly! NoesisGUI is really worth the investment for the friendly support alone! I just sent the integration script to inControl so hopefully it will be available on their website soon, until then for anyone who needs inControl support you can find it here:

    http://www.noesisengine.com/forums/viewtopic.php?f=3&t=483&p=2380#p2380
     
    jdesantos likes this.
  46. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Thanks! Remember that you need the patches for noesisGUI 1.1.10. They will be added in the next version, in a few weeks.
     
  47. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Nezabyte likes this.
  48. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    And a new video tutorial, this one about Data Binding.

    Do you want more tutorials? Please contact us and tell us what do you need!

     
    Nezabyte, movra and S-0-L-0 like this.
  49. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    Listen faster :)

    I like to see more tutorials that go step-by-step like that one, instead of just showing the results like in most of the samples on your website.

    Also, I need more cowbell.
     
  50. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163