Search Unity

NoesisGUI : XAML-based User Interface [RELEASED]

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

  1. Braindog

    Braindog

    Joined:
    Sep 15, 2012
    Posts:
    8
    Please more step-by-step tutorials
     
    PauSchiSea likes this.
  2. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Sure, any subject on particular?
     
  3. Nims

    Nims

    Joined:
    Nov 11, 2013
    Posts:
    86
    I would like to see the whole subject of data binding explained in more detail, I don't feel the last video was sufficient. I would also like to see an example of how to use the only behavior available "GoToStateAction".
     
  4. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    When you say in more detail, do you mean you want a better explanation about each step taken in the Data Binding video?

    Or do you mean you want to see other aspects of data binding that were not shown in the video?
     
  5. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    The data binding tutorial was helpful but it would be nice if there was one for binding a library of svg images (or converting svg to xaml) to a grid or stackpanel, for example dynamically displaying icons for an inventory or skill tree.
     
  6. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  7. VicToMeyeZR

    VicToMeyeZR

    Joined:
    Jun 3, 2012
    Posts:
    427
    So since Unity is releasing uGUI, are you pulling your asset too?
     
  8. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    There is a written tutorial about it here:

    http://www.noesisengine.com/docs/Gui.Core.ExtendingTutorial.unity.html

    Although it is very simple. We need to improve that tutorial and create a extended one covering all the aspects of Data Binding with Unity and NoesisGUI.

    About behaviors, the implementation is yet not finished. But it is in our roadmap.
     
  9. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Why should we do that? I don't see any reason for thinking about it:

    1. We think that NoesisGUI is a very decent alternative to uGUI. It is a different point of view. We think that it is very difficult to create a professional interface using NGUI, and, as we know, NGUI and uGUI are the same. It is only a question of time that more people understand our view. Now, many developers are waiting uGUI but soon or later they will start looking for alternatives.

    2. We are a company, not a group of friends, working on this, making money in more fields. NoesisGUI is offered also as a C++ framework. There are integrations to more engines and we are working for new ones in the future. We have several big companies using NoesisGUI internally.
     
  10. VicToMeyeZR

    VicToMeyeZR

    Joined:
    Jun 3, 2012
    Posts:
    427
    Thanks for your response. Looking for alternative, since the one we were using, just pulled for no good reason. Just checking.
     
  11. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    DF was positioned as a NGUI replacement. Many believe the upcoming new uGUI to be superior to both. Since uGUI has been announced to definitely going to be available this summer, people would stop buying DF, although interestingly NGUI sales seems not as impacted. Anyway, DF is claimed to be no longer financially viable. I'm also disappointed by DF's discontinuation because I didn't get any mileage out of it. But then again, I find NoesisGUI to be a much more robust product so I wouldn't use DF even if it were still supported.

    NoesisGUI and CoherentUI are totally different products compared to DF, NGUI and uGUI. Their workflow is XAML respectively HTML based, so a significant portion of GUI design can take place independently of Unity3D. You can see for yourself with the trial version of NoesisGUI: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=91
     
    Last edited: Aug 12, 2014
  12. jdesantos

    jdesantos

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

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    the tutorial uses "ImageSource" type, is there a XAMLSource type? Would a XAML Icon be accessed in the same way? What is the best way to store a bunch of XAML Icons? Is there way to put them in an ATLAS?
     
  14. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    No, XAML is the container xml file. What you want to achieve is having a dictionary of geometries that can be reused. The concept of ATLAS here doesn't make much sense because vectorial art is yet not rasterizer.

    Using a dictionary with Shapes was commented in this same thread months ago:

    http://forum.unity3d.com/threads/no...interface-released.192064/page-6#post-1337651

    It is an interesting topic, we should create a entry in our forum...
     
  15. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Note that, you can have the dictionary in a different XAMLs. That way you can reuse them is several places.
     
  16. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    When I try applying a static resource to button styling doesn't seem to be working. I posted the code on the forum here:

    http://www.noesisengine.com/forums/viewtopic.php?f=3&t=486
     
  17. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    A couple of days ago Noesis Technologies announced they are working together with InvertStudios to provide integration of NoesisGUI with uFrame. Because I suggested this upcoming feature I want to talk a little about it.

    Like NoesisGUI, uFrame is based on the MVVM pattern and it's nominated for the Unity Awards 2014. Both NoesisGUI and uFrame are currently on sale.

    So what will the integration of NoesisGUI and uFrame do for us? It will save us a lot of boilerplate code. In uFrame we are able to visually design the elements of a game. When hitting the save & compile button uFrame generates the bindings and other boilerplate, hidden away in partial classes so we never even have to look at it.

    The integration creates a special ViewModel wrapper that can be specified as a DataContext of a Noesis GUI Panel. The wrapper provides automatic 2-way bindings between the NoesisGUI controls and the underlying code.

    A simple example of the Noesis+uFrame integration.
    1. We are going to make a chat box. In uFrame's Element Designer, create a TestChat element with an Input and an Output string. Also add a SayHelloCommand. An element is basically a ViewModel, an abstraction of the View.



    2. Create a View and connect it to the element. In the View we can react to property changes, but we're not going to do that in this example.

    3. Now for our game logic. Open TestChatController.cs and implement the SayHelloCommand.
      Code (CSharp):
      1. public class TestChatController : TestChatControllerBase
      2. {
      3.     public override void SayHelloCommand(TestChatViewModel testChat)
      4.     {
      5.         testChat.Output = "Hello, " + testChat.Input;
      6.     }
      7. }
    4. Here's a basic XAML for the chat box. Note that the bindings match the property names.
      Code (CSharp):
      1. <Grid
      2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      4.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
      5.  
      6.      <Viewbox>
      7.        <StackPanel x:Name="chatbox">
      8.           <TextBox Text="{Binding Input, Mode=TwoWay}"/>
      9.           <Button Content="Say Hello" Command="{Binding SayHelloCommand}" />
      10.           <TextBlock Text="{Binding Output}" />
      11.        </StackPanel>
      12.      </Viewbox>
      13. </Grid>
    5. Add the TestChatView.cs and NoesisGUIPanel component to the Main Camera. In the Inspector go to the Noesis GUIPanel component and pick the wrapper in the DataContext field. All hooked up :)

      The method SayHelloCommand() in TestChatController.cs will be called when the command is triggered by pressing the button. In the method we change the contents of the Output property, causing the output textblock to be automatically updated.

    6. Play! Type in something in the input box, press the button and you will see that "Hello, " plus your input will be printed in the output box.

    While this is a very minimal example, I hope you can see the benefit of automatic binding between the UI and the game code in a bigger project.

    What do you think about this feature?
     
    Last edited: Aug 13, 2014
    Nezabyte likes this.
  18. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
  19. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    I really like the idea of integrating NoesisGUI with more tools, though I am not very familiar with UFrame, what would the workflow be like between Blend, editing XAML and Unity?

    The two-way binding looks really awesome! How would it work with configuring a ResourceDictionary of skill icons for a character?
     
    Last edited: Aug 14, 2014
  20. micahoz123

    micahoz123

    Joined:
    Jul 21, 2013
    Posts:
    34
    After chatting with the NoesisGUI guys before the madness of the madness sale. We decided that soon after we would begin working on an integration with both uFrame and Noesis as they use a similar design model MVVM. In order to do this we are going to be open sourcing a simple interface library for a set of common MVVM interfaces that anyone can use and work with the same model. This will make integration with any product that chooses to very straight forward. More information will be coming soon.
     
    bjornrun and Nezabyte like this.
  21. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    Last hours of the MADNESS SALE!

    See what you can do with noesisGUI:



    Examples with sources can be found in our Showcase.

    If you want to enjoy creating impressive user interfaces BUY noesisGUI now for just $75 (70% OFF).
     
  22. Nezabyte

    Nezabyte

    Joined:
    Aug 21, 2012
    Posts:
    110
    I was following this like a tutorial with the thought "Wow, this is so easy and makes sense". Then I realized this isn't how it currently works :p Can't wait for it to be like this.
     
  23. Dosetsu

    Dosetsu

    Joined:
    Dec 22, 2011
    Posts:
    39
    Really exciting to hear about potential for integration between uframe and noesis !
     
  24. jdesantos

    jdesantos

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

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  26. schmosef

    schmosef

    Joined:
    Mar 6, 2012
    Posts:
    852
    I love working in XAML. Even though the UnityGUI beta was released today, I don't plan on switching to it.

    I hope you guys will continue to develop and support this awesome GUI system.
     
  27. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Thanks for your kind words! Yes, of course we will continue working on NoesisGUI. :)
     
  28. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    VicToMeyeZR likes this.
  29. haowang1013

    haowang1013

    Joined:
    Aug 21, 2014
    Posts:
    3
    Hi,

    I bought neosis from the asset store and couldn't get it working with unity 4.6 beta on my android phone.
    Here's the suspicious logcat output if it's useful (I tried the button scene from the samples):

    09-12 16:04:47.749: W/dalvikvm(16150): Shared lib '/data/data/com.DirectiveGames.noesis/lib/libNoesis.so' already opened by CL 0x426556c8; can't open in 0x0
    09-12 16:04:47.749: D/Unity(16150): Unable to load library '/data/data/com.DirectiveGames.noesis/lib/libNoesis.so', native render plugin support disabled: java.lang.UnsatisfiedLinkError: unknown failure
    09-12 16:04:48.029: E/Noesis(16150): NS_ERROR: [ANDROID] Resource ID for 'Unity/Unity/NoesisGUI/Samples/Button/Button.xaml' not found


    Any ideas?
     
    Last edited: Sep 12, 2014
  30. haowang1013

    haowang1013

    Joined:
    Aug 21, 2014
    Posts:
    3
    also, I don't seem to be able to register an account on your forum, kept getting this error

    ERROR
    The requested URL could not be retrieved
     
  31. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    When are you getting the forum error? You should be able to register here.

    Please, contact us, in private to solve both problems.
     
  32. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    http://www.noesisengine.com/forums/viewtopic.php?f=3&t=517
     
  33. shadowndacorner

    shadowndacorner

    Joined:
    Mar 9, 2013
    Posts:
    16
    If I might ask, what's the status on 1.2 for Unity?
     
  34. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    We expect to release a beta version (with DX11) in the following weeks. So stay tuned.
     
  35. shadowndacorner

    shadowndacorner

    Joined:
    Mar 9, 2013
    Posts:
    16
    Good to hear! Thanks for replying so quick.
     
  36. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    The list of improvements is going to be *big* (not only DX11) :)
     
    movra and zyzyx like this.
  37. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    NoesisGUI v1.1.11

    >> Buy from Asset Store
    >> Download the Trial
    • PPAA algorithm improved. Now it works properly with animations and it is faster.
    • Experimental support added for profiling CPU and Memory using NoesisGUI console.
    • Added support for more system types (int16, int32, uint16, uint32, single and double) in a ResourceDictionary. Fixed also the XAML parser because it was using the assembly name instead of the namespace to expand type name.
    • Fixed: TemplateTriggerProvider was trying to invalidate the properties of an object that was being destroyed.
    • Fixed: Line geometry was not correctly updated when changing the thickness of the stroke. This bug could also affect other geometries.
    • Fixed: An incorrect type of value could be assigned to a dependency property coming from a StaticResource.
    • Fixed: TextTrimming incorrectly generating extra line.
    • Fixed: Problem when item being removed in the SelectionChanged handler or any other Mouse event handler.
    • Fixed: ItemContainerStyle bindings to data item properties are now working
      <Setter Property="IsSelected" Value="{Binding IsItemSelected, Mode=TwoWay}"/>
    • [Unity] functions for injecting input events added.
    • [Unity] GUI render no longer affected by Unity Post Processing. Added a toggle to revert to previous behavior.
    • [Unity] Try versions of FindStringResource and FindTypeResource added.
    • [Unity] Fixed: Error inside FindStringResource and FindTypeResource functions was crashing Unity.
    • [Unity] Fixed: Ramps not properly rendered when activating Linear Color Space in Player Settings.
    • [Unity] Fixed: more keycode problem fixed in Linux.
     
    movra likes this.
  38. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    S-0-L-0 likes this.
  39. jdesantos

    jdesantos

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

    jdesantos

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

    jdesantos

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

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    NoesisGUI v1.1.12

    ON SALE till next major version release! Buy for only 125$!

    >> Buy from Asset Store
    >> Download the Trial
    • Support for TabControl using ItemsSource property.
    • Support for GridLength animation.
    • Support for xml:space="preserve".
    • Changed TabItem in the DefaultStyle so content gets stretched as in WPF styles.
    • Support for using Projection property in Blend WPF projects.
    • Fixed: Noesis.UserControlSource not needed in not final classes.
    • Fixed: DefaultStyle padding bindings.
    • Fixed: Button not reacting to interaction when changing Visibility per frame.
    • Fixed: VS2013 compilation issues.
    • Fixed: XCode 6 issues.
    • Fixed: Crash in ComboBox when using a UIElement as SelectionBoxItem.
    • Fixed: Some Bindings to UserControl root were failing when using the UserControl inside another xaml.
    • [Unity] Support for passing string to HeaderedContentControl.SetHeader().
    • [Unity] Exposed UIElement.UpdateLayout() to C#.
    • [Unity] Under certain conditions, Image Effects affects to NoesisGUI.
    • [Unity] DX9 Render glitches when resizing fixed.
    • [Unity] No longer crashing when changing DX9 <-> DX11 in Player settings. There is a bug in Unity about this.
    • [Unity] Several functions in UnityBindings not properly protected against exceptions were crashing Unity.
    • [Unity] Subclassed controls used inside a Template now correctly clone their properties.
    • [Unity] Error displayed when switching to a platform that is not active in NoesisGUI settings.
     
  43. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    I've been experimenting with the public beta versions of both uFrame 1.5 and NoesisGUI 1.2. Although the WPF MVVM style integration between them I talked about earlier is not yet officially complete, I think it's very close. So close in fact that I hacked around a bit and made the integration work!

    Now I can create an Element in uFrame and feed it directly into NoesisGUI. In the XAML I can bind to uFrame properties, collections and commands. For example, I can create a button that triggers a command on the Element's controller which creates an item and puts it in a collection. That collection binds to a visual list which is dynamically updated in the scene.

    And it works without writing any boilerplate. I'll post an example later.
     
  44. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Thanks for the comments movra. The final v1.2 is almost ready. We will release a new Beta (6th) this week.

    Till that moment, you can acquire NoesisGUI for only $125!
     
  45. meta87

    meta87

    Joined:
    Dec 31, 2012
    Posts:
    254
    That is very exciting info movra! I'm just starting to use use both uframe and noesis and can already see how powerful they could be used in tandem. Looking forward to your example.
     
    Last edited: Nov 19, 2014
  46. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Beta 6 is almost ready to be released. Your feedback is very important at this moment.
    Thanks!
     
  47. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    The example is a bit delayed as I'm working out the kinks of the integration with the uFrame and Noesis teams.

    Here's a screenshot of the project I'm using to test the data binding and report bugs with.



    I've created 2 Elements in uFrames, AnimalViewer and Animal. The AnimalViewer has a collection of Animals.

    I made a XAML for the AnimalViewer that makes a list of the collection and binds the AnimalViewer's properties to GUI controls. Even the properties of the individual collection items are bound.

    I can change the name of an Animal item (the green box) in the list and that will update the AnimalViewer's AnimalName property (bound to the first item) as you type. It works in both directions.

    The changes are also visible in the Inspector. And I can type something in the Inspector and it will update the GUI in the Game tab.

    Below you can see how useful the design-time data feature of Blend is. You feed Blend a ViewModel and it will automatically generate lorem ispum style random data and populate the XAML controls with it in the editor. That way you don't have to compile and run the project every time just to see how your design would look with stuff in it.

     
    Last edited: Nov 21, 2014
  48. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    Now ON SALE! 50% OFF until 1.2 is released!

    >> Buy from Asset Store
    >> Download the Trial

    NoesisGUI v1.1.13

    • XAMLs with a Window root are no longer accepted in Unity. A proper error is shown at build time.
    • Noesis.Extend.IsExtendType(type) is cached to speed up .As<T> conversions.
    • Fixed: Controls inside a template with event handlers added in constructor were ignored.
    • Fixed: UpdateSourceTrigger default value for TextBox.Text property was not correctly set to LostFocus.
    • Fixed: Crash on x64 when creating several renderers.
    • Fixed: PropertyChangedCallback being ignored when using default(string) as default value.
    • Fixed: Incorrect Extended instance being registered if another BaseComponent is created in its constructor.
    • Fixed: BaseComponent.AsType was failing when used with extended types.
    • Fixed: HitTesting failing on Popups.
    • Fixed: Bugs in TabControl when used along with ItemsSource property.
    • Fixed: Improved error reporting in VisualTreeHelper and LogicalTreeHelper.
    • Fixed: Slider moves erratically when receiving several Mouse events between updates.
     
  49. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    Can i ask when is the promised playmaker support coming? this was supposed to be happening over 8 months ago now! a lot of playmaker users bought this on the strength of that promise only to be let down!

    A 'FULL' set of actions needs to come 'VERY' soon please.
     
    Last edited: Jan 6, 2015
  50. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Sorry for the delay answering this. We didn't receive the notification from the forum. Please use our forums for better and faster support.

    We have been working with the playmaker team for the last few months and we are almost ready to release our first set of actions. We plan to release them this week, almost in parallel with the release of v1.2.0 beta7.

    Thanks!