Search Unity

NoesisGUI : XAML-based User Interface [RELEASED]

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

  1. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi,

    You are reading the tutorials in the Native SDK section. You have to read the tutorials under the Unity Tutorials section. We have the documentation unified because we have customers that are using both APIs.

    XamlPlayer is not included in the Trial. It can be downloaded from our web if you buy the unitypackage.

    Thanks!
     
  2. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    ok thanks for the quick reply
     
  3. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    We though this could be interesting for those users that do not visit our forums.

    One customer confirms us that his trial Visual Studio Pro 2013 expired after 30 days but the 2013 Blend which is included as part of the download did not. So for those with no VS pro license the 2013 trial for win8 will get you a nice working XAML editor with Blend 2013 and no expiration.

    This is a great opportunity to get an amazing UI editor compatible with noesisGUI for free.

    Enjoy!
     
  4. tswalk

    tswalk

    Joined:
    Jul 27, 2013
    Posts:
    1,109


    I was curious... I had already started a HUD using blend and visual studio 2013 with standard XAML/C#. I was wondering if you have the ability to take the page layout and code-behind and convert into noesis for use in Unity with GPU acceleration?

    Or would I be looking at basically a total re-write?
     
  5. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    It depends on what you are using but I would say that the XAML will work with minimal changes (if any). About the C# files, our API is very similar too (dependency properties, events, base classes).

    If you want, we can have a look at it or you can try it yourself.

    My advice is that you register at our forums (http://forums.noesisengine.com/) and ask for help there.

    Regards.
     
  6. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    noesisGUI v1.1.3 released!

    Very soon in the Asset Store.

    One of the great improvements in this version are the debug rendering modes and stats to help tuning the performance.

    $Stats.PNG
     
  7. ddesmond

    ddesmond

    Joined:
    Feb 9, 2010
    Posts:
    163
    where on the site do you download the xamplayer?
     
  8. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  9. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    NEW YEAR SALE!
    60% discount over the regular price until next version.


    NoesisGUI v1.1.3

    >> Buy from Asset Store

    • PPAA algorithm (antialiasing emulation without using GPU full-scene antialiasing) reimplemented from scratch. Now it is faster and without glitches.
    • Improved tessellation algorithm. Better generation of triangles.
    • Improvements to XAML parser: crashes fixed, error messages improved.
    • Size optimization in our binaries. The size of noesis.dll has been reduced.
    • Added support for FontFamily syntax "FontPath/FontFile.ext#FontFamily". This syntax is used by Blend when you add a font file (a .ttf for example) to the project and select it.
    • Exposed TextBox.CaretIndex property.
    • BindingOperations exposed to Unity API.
    • Added support for modifying scripts while in Play mode.
    • Added support for creating a TextureSource from any type of UnityEngine.Texture objects (video, render texture, texture).
    • Debugging flags exposed in NoesisGUI component.
    • Improvements to documentation: new core documents (memory, reference counting, boxing, delegates) added to index.
    • New tutorial: Optimizing NoesisGUI Performance.
    • Fixed: Update Z-order when inserting a child in a VisualCollection.
    • Fixed: Crash when using a TemplateBinding outside a ControlTemplate.
    • Fixed: Opacity groups rendering glitches.
    • Fixed: Projection glitches.
    • Fixed: Geometry loses quality when placed closer to right side of screen due to half float precision.
    • Fixed: Border issue when drawing images.
    • Fixed: When Building resources that use Binding, sometimes the properties were not bound properly.
    • Fixed: Bindings were not using the target property converter if available.
    • Fixed: ComboBoxItem IsSelected was not updating ComboBox.SelectedItem correctly.
    • Fixed: StreamGeometryContext now calls automatically StreamGeometry.Close() when is destroyed, as it occurs in WPF.
    • Fixed: As<T>() crashes.
    • Fixed: Memory issues. XAML resources were not properly unloaded from memory.
     
  10. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    269
    Congratulations on the new update. :)

    I'm investigating using Noesis for my project, but I have a sort of specific requirement and am a bit of a WPF novice so I'm not sure if this is possible. It's a text heavy game, so I want to do some advanced text effects. I want to have text type out by having individual letters fade in (sort of an advanced typewriter effect), with text outlines and possibly drop shadows (though shadows can be emulated fairly easily with a duplicate text layer, a transform and z ordering). It would be especially good if it's possible to have more than one font style or size per text box, but that's not as important as presentable text effects. Do you know if this is something that Noesis can do? I've managed to get NGUI to do everything through a variety of tricky changes to core files and pre-rendered fonts, but I'm particularly curious if Noesis can do it because it seems like it could be a more powerful way to create a UI.
     
  11. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    There are several ways to do what you are describing. For example, I would say that the best option is using shapes instead of fonts, but if the text can be generated dynamically then is probably better using glyphs. Although if you want to have a different alpha for each font that can be tricky.

    Could you attach screenshots of what you are trying to achieve?
     
  12. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    269
    Sorry, I'm not the best at describing it. I've made a video of what I'm trying to achieve. The key here would be the letters fading in.

    http://youtu.be/WKi-hj4m3Os

    The text is dynamic in the project which complicates things. It also needs to support asian languages, which continues to complicate things further. I've made it work in NGUI by hijacking the text color code to allow alpha values and updating the string each frame to fade letters in. It's obviously a pretty specific and complicated case though, but I'd think it would be best if it was handle-able within the GUI code.
     
  13. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Thanks for the video. Now I fully understand what you want. :)

    I created a very simple XAML showing the effect in noesisGUI.

    Code (csharp):
    1.  
    2. <Grid
    3.   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    4.   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    5.   xmlns:noesis="clr-namespace:NoesisGUIExtensions">
    6.  
    7.     <Grid.Resources>
    8.         <Storyboard x:Key="Storyboard1">
    9.             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.OpacityMask).(GradientBrush.GradientStops)[2].(GradientStop.Offset)" Storyboard.TargetName="textBlock">
    10.                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
    11.                 <EasingDoubleKeyFrame KeyTime="0:0:3.9" Value="0.884"/>
    12.             </DoubleAnimationUsingKeyFrames>
    13.             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.OpacityMask).(GradientBrush.GradientStops)[1].(GradientStop.Offset)" Storyboard.TargetName="textBlock">
    14.                 <EasingDoubleKeyFrame KeyTime="0" Value="0.006"/>
    15.                 <EasingDoubleKeyFrame KeyTime="0:0:3.9" Value="0.938"/>
    16.             </DoubleAnimationUsingKeyFrames>
    17.             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.OpacityMask).(GradientBrush.GradientStops)[0].(GradientStop.Offset)" Storyboard.TargetName="textBlock">
    18.                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
    19.                 <EasingDoubleKeyFrame KeyTime="0:0:3.9" Value="0"/>
    20.             </DoubleAnimationUsingKeyFrames>
    21.         </Storyboard>
    22.     </Grid.Resources>
    23.  
    24.     <Grid.Triggers>
    25.         <EventTrigger RoutedEvent="FrameworkElement.Loaded">
    26.             <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
    27.         </EventTrigger>
    28.     </Grid.Triggers>
    29.  
    30.     <TextBlock x:Name="textBlock" Margin="102,194,67,212" TextWrapping="Wrap" FontSize="14"
    31.         noesis:Text.StrokeThickness="0.25" noesis:Text.Stroke="DodgerBlue"
    32.         Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor">
    33.  
    34.         <TextBlock.OpacityMask>
    35.             <LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
    36.                 <GradientStop Color="Black"/>
    37.                 <GradientStop Offset="0.288"/>
    38.                 <GradientStop Color="Black" Offset="0.194"/>
    39.             </LinearGradientBrush>
    40.         </TextBlock.OpacityMask>
    41.        
    42.     </TextBlock>
    43. </Grid>
    44.  
    $FadeText.png

    As you can see, you can implement this effect without hacks. The basic idea is having an horizontal gradient that is used as the alpha mask of the text. I think this is a lot better than the hack used in NGUI fading each character. The horizontal movement illusion is broken that way.

    Asian languages are not a problem for noesisGUI. We support UTF8. I also used a stroked font to show you this effect.
     
  14. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  15. fversnel

    fversnel

    Joined:
    Jan 7, 2013
    Posts:
    6
    Hi, I'm running into a problem with NoesisGui.

    I've my menu displayed as a 3D object in the world as part of the Gui layer. Since the menu is on the Gui layer Unity any other objects in the scene are always displayed behind it even if those objects are actually (in terms of actual world position) in front of the menu. Raycasting in Noesis by default uses all layers to detect collisions, which results into problems when I want to recast on the menu while an object on another layer is actually in front of it according to the world position. It would be great if the Noesis raycasting can be configurable with a layer mask just as the Unity raycasting is.

    Kind regards,
    Frank
     
  16. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    We prefer discussing technical details directly in our form (http://www.noesisengine.com/forums/) to increase our knowledge base. Also you can file us bugs and track them in our tracker (http://bugs.noesisengine.com/). This second service only for customers.

    Your problem can be easily hacked by editing the file Plugins/NoesisGUI/Scripts/Core/NoesisUIRenderer.cs and changing the following function (that by defaults takes all the layers)

    Code (csharp):
    1.  
    2. static bool Raycast(Vector3 origin, Vector3 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
    3.  
    This is the hack... for the final solution I don't know what is better: exposing this member in the component or use always the same layer where the object belongs to?
     
  17. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    The following example demonstrates how easy is to draw line chart and similar graphics with noesisGUI:

    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:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
    5.   Background="Gainsboro">
    6.     <Viewbox TextElement.Foreground="Gray" Margin="40">
    7.         <StackPanel>
    8.             <Grid>
    9.                 <TextBlock Text="Site Traffic" FontSize="12" FontWeight="Bold" HorizontalAlignment="Left" Margin="20,0,0,0"/>
    10.                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,20,0">
    11.                     <Rectangle Fill="LightSkyBlue" Width="12" Height="2"/>
    12.                     <TextBlock Text="Visits" FontSize="10" FontWeight="Bold" Margin="4,0,0,0"/>
    13.                     <Rectangle Fill="Tomato" Width="12" Height="2" Margin="14,0,0,0"/>
    14.                     <TextBlock Text="Unique Visits" FontSize="10" FontWeight="Bold" Margin="4,0,0,0"/>
    15.                 </StackPanel>
    16.             </Grid>
    17.             <Border Background="White" BorderBrush="Silver" BorderThickness="1" CornerRadius="2" Padding="10" Width="400" Margin="0,10,0,0">
    18.                 <Grid TextElement.FontSize="10">
    19.                     <Grid.ColumnDefinitions>
    20.                         <ColumnDefinition Width="Auto"/>
    21.                         <ColumnDefinition Width="*"/>
    22.                         <ColumnDefinition Width="*"/>
    23.                         <ColumnDefinition Width="*"/>
    24.                         <ColumnDefinition Width="*"/>
    25.                         <ColumnDefinition Width="*"/>
    26.                     </Grid.ColumnDefinitions>
    27.                     <Grid.RowDefinitions>
    28.                         <RowDefinition Height="*"/>
    29.                         <RowDefinition Height="*"/>
    30.                         <RowDefinition Height="*"/>
    31.                         <RowDefinition Height="14"/>
    32.                         <RowDefinition Height="*"/>
    33.                     </Grid.RowDefinitions>
    34.                    
    35.                     <!--Rectangle Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="5" Height="1" Fill="Gray" Margin="0,0,0,20"/-->
    36.                     <Path Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="5" Data="M0,0 L1,0" Stroke="Silver" StrokeDashArray="2 2" Stretch="Fill" Margin="0,7,0,0" VerticalAlignment="Top"/>
    37.                     <Path Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="5" Data="M0,0 L1,0" Stroke="Silver" StrokeDashArray="2 2" Stretch="Fill" Margin="0,7,0,0" VerticalAlignment="Top"/>
    38.                     <Path Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5" Data="M0,0 L1,0" Stroke="Silver" StrokeDashArray="2 2" Stretch="Fill" Margin="0,7,0,0" VerticalAlignment="Top"/>
    39.                     <Rectangle Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="5" Height="1" Fill="Silver" VerticalAlignment="Top" Margin="0,7,0,0"/>
    40.                    
    41.                     <!--Rectangle Grid.Row="3" Grid.ColumnSpan="6" Fill="#4000FF00"/-->
    42.                    
    43.                     <Path Grid.RowSpan="3" Grid.Column="1" Data="M0,0 L0,1" Stroke="Silver" Stretch="Fill" Margin="0,6,-0.5,-10" HorizontalAlignment="Right"/>
    44.                     <Path Grid.RowSpan="3" Grid.Column="2" Data="M0,0 L0,1" Stroke="Silver" Stretch="Fill" Margin="0,6,-0.5,-10" HorizontalAlignment="Right"/>
    45.                     <Path Grid.RowSpan="3" Grid.Column="3" Data="M0,0 L0,1" Stroke="Silver" Stretch="Fill" Margin="0,6,-0.5,-10" HorizontalAlignment="Right"/>
    46.                     <Path Grid.RowSpan="3" Grid.Column="4" Data="M0,0 L0,1" Stroke="Silver" Stretch="Fill" Margin="0,6,-0.5,-10" HorizontalAlignment="Right"/>
    47.                     <Grid Grid.RowSpan="4" Grid.Column="1" Grid.ColumnSpan="5" Height="100" Margin="0,0,0,7.5" VerticalAlignment="Bottom">
    48.                    
    49.                         <Path Data="M0,14 L5,18 10,26 15,21 20,24 25,16 30,14 35,20 40,30 45,18 50,14 50,5 45,7 40,4 35,6 30,8 25,6 20,5 15,8 10,9 5,8 0,9 Z M0,0" Fill="#1987CEFA" Stretch="Fill"
    50.                             Margin="0,4,0,0" RenderTransformOrigin="0.5,0.5">
    51.                             <Path.RenderTransform>
    52.                                 <ScaleTransform ScaleY="-1"/>
    53.                             </Path.RenderTransform>
    54.                         </Path>
    55.                         <Path Data="M0,14 L5,18 10,26 15,21 20,24 25,16 30,14 35,20 40,30 45,18 50,14 M0,0" Stroke="LightSkyBlue" Stretch="Fill"
    56.                             Margin="0,4,0,0" RenderTransformOrigin="0.5,0.5">
    57.                             <Path.RenderTransform>
    58.                                 <ScaleTransform ScaleY="-1"/>
    59.                             </Path.RenderTransform>
    60.                         </Path>
    61.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="-4,0,0,42.5" d:LayoutOverrides="HorizontalAlignment">
    62.                             <Ellipse Fill="White" Stretch="Fill"/>
    63.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    64.                         </Grid>
    65.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="31,0,0,55.5" d:LayoutOverrides="HorizontalAlignment">
    66.                             <Ellipse Fill="White" Stretch="Fill"/>
    67.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    68.                         </Grid>
    69.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="64,0,0,81.5">
    70.                             <Ellipse Fill="White" Stretch="Fill"/>
    71.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    72.                         </Grid>
    73.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="100,0,0,65.5" d:LayoutOverrides="HorizontalAlignment">
    74.                             <Ellipse Fill="White" Stretch="Fill"/>
    75.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    76.                         </Grid>
    77.                         <Grid Width="8" HorizontalAlignment="Left" Margin="134,0,0,55.5" Height="8">
    78.                             <Ellipse Fill="White" Stretch="Fill"/>
    79.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    80.                         </Grid>
    81.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="168,0,0,50.5">
    82.                             <Ellipse Fill="White" Stretch="Fill"/>
    83.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    84.                         </Grid>
    85.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="202,0,0,43.5">
    86.                             <Ellipse Fill="White" Stretch="Fill"/>
    87.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    88.                         </Grid>
    89.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="237,0,0,62.5">
    90.                             <Ellipse Fill="White" Stretch="Fill"/>
    91.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    92.                         </Grid>
    93.                         <Grid Width="8" HorizontalAlignment="Left" Margin="271,-4,0,90.5" Height="8">
    94.                             <Ellipse Fill="White" Stretch="Fill"/>
    95.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    96.                         </Grid>
    97.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="306,0,0,56.5">
    98.                             <Ellipse Fill="White" Stretch="Fill"/>
    99.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    100.                         </Grid>
    101.                         <Grid Width="8" HorizontalAlignment="Left" Margin="340,0,-4,-11.5" Height="8">
    102.                             <Ellipse Fill="White" Stretch="Fill"/>
    103.                             <Ellipse Stroke="LightSkyBlue" Stretch="Fill" Margin="1"/>
    104.                         </Grid>
    105.                    
    106.                     </Grid>
    107.                    
    108.                     <Grid Grid.RowSpan="4" Grid.Column="1" Grid.ColumnSpan="5" Height="35" Margin="0,0,0,7.5" VerticalAlignment="Bottom">
    109.                    
    110.                         <Path Data="M0,9 L5,8 10,9 15,8 20,5 25,6 30,8 35,6 40,4 45,7 50,5 50,0 0,0 Z" Fill="#0EFF6347" Stretch="Fill"
    111.                             Margin="0,4,0,0" RenderTransformOrigin="0.5,0.5">
    112.                             <Path.RenderTransform>
    113.                                 <ScaleTransform ScaleY="-1"/>
    114.                             </Path.RenderTransform>
    115.                         </Path>
    116.                         <Path Data="M0,9 L5,8 10,9 15,8 20,5 25,6 30,8 35,6 40,4 45,7 50,5 M0,0" Stroke="Tomato" Stretch="Fill"
    117.                             Margin="0,4,0,0" RenderTransformOrigin="0.5,0.5">
    118.                             <Path.RenderTransform>
    119.                                 <ScaleTransform ScaleY="-1"/>
    120.                             </Path.RenderTransform>
    121.                         </Path>
    122.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="-4,0,0,26.5" d:LayoutOverrides="HorizontalAlignment">
    123.                             <Ellipse Fill="White" Stretch="Fill"/>
    124.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    125.                         </Grid>
    126.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="31,0,0,23.5" d:LayoutOverrides="HorizontalAlignment">
    127.                             <Ellipse Fill="White" Stretch="Fill"/>
    128.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    129.                         </Grid>
    130.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="64,0,0,26.5">
    131.                             <Ellipse Fill="White" Stretch="Fill"/>
    132.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    133.                         </Grid>
    134.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="100,0,0,23.5" d:LayoutOverrides="HorizontalAlignment">
    135.                             <Ellipse Fill="White" Stretch="Fill"/>
    136.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    137.                         </Grid>
    138.                         <Grid Width="8" HorizontalAlignment="Left" Margin="134,13,0,13.5" Height="8">
    139.                             <Ellipse Fill="White" Stretch="Fill"/>
    140.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    141.                         </Grid>
    142.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="168,0,0,17.5">
    143.                             <Ellipse Fill="White" Stretch="Fill"/>
    144.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    145.                         </Grid>
    146.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="202,0,0,23.5">
    147.                             <Ellipse Fill="White" Stretch="Fill"/>
    148.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    149.                         </Grid>
    150.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="237,0,0,16.5">
    151.                             <Ellipse Fill="White" Stretch="Fill"/>
    152.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    153.                         </Grid>
    154.                         <Grid Width="8" HorizontalAlignment="Left" Margin="271,16,0,10.5" Height="8">
    155.                             <Ellipse Fill="White" Stretch="Fill"/>
    156.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    157.                         </Grid>
    158.                         <Grid Width="8" Height="8" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="306,0,0,20.5">
    159.                             <Ellipse Fill="White" Stretch="Fill"/>
    160.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    161.                         </Grid>
    162.                         <Grid Width="8" HorizontalAlignment="Left" Margin="340,13,-4,13.5" Height="8">
    163.                             <Ellipse Fill="White" Stretch="Fill"/>
    164.                             <Ellipse Stroke="Tomato" Stretch="Fill" Margin="1"/>
    165.                         </Grid>
    166.                    
    167.                     </Grid>
    168.                    
    169.                     <TextBlock Grid.Row="0" Text="1,500" HorizontalAlignment="Right" Margin="0,0,10,20"/>
    170.                     <TextBlock Grid.Row="1" Text="1,000" HorizontalAlignment="Right" Margin="0,0,10,20"/>
    171.                     <TextBlock Grid.Row="2" Text="500" HorizontalAlignment="Right" Margin="0,0,10,20"/>
    172.                    
    173.                     <TextBlock Grid.Column="1" Grid.Row="4" Text="27 May" HorizontalAlignment="Left"/>
    174.                     <TextBlock Grid.Column="2" Grid.Row="4" Text="29 May" HorizontalAlignment="Left"/>
    175.                     <TextBlock Grid.Column="3" Grid.Row="4" Text="31 May" HorizontalAlignment="Left"/>
    176.                     <TextBlock Grid.Column="4" Grid.Row="4" Text="02 Jun" HorizontalAlignment="Left"/>
    177.                     <TextBlock Grid.Column="5" Grid.Row="4" Text="04 Jun" HorizontalAlignment="Left"/>
    178.                    
    179.                 </Grid>
    180.             </Border>
    181.         </StackPanel>
    182.     </Viewbox>
    183. </Grid>
    See how it looks in Unity Editor:

    $chart-small2.png

    And taking advantage of noesisGUI vectorial graphics (resolution independant), you can change screen size and everything gets correctly scaled without modifying the XAML file:

    $chart-big.png
     
    Last edited: Jan 24, 2014
  18. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    Just a general query.

    I was wondering how long the New Year promotional 60% discount was going to run?
     
  19. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    We are going to submit next version to the Unity Asset Store along this week, so I guess next week the New Year promotion will end ;)
     
  20. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
  21. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    Any chance of confirming in this thread when you actually submit the new version? I'm following the post.
     
  22. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    No problem. As soon as we do the submission, we will post it here, so anyone can have its last chance to get NoesisGUI with that fantastic promotion ;)
     
  23. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    I picked it up this morning. Too good an opportunity to miss. Brilliant GUI system well worth the full price.
     
  24. sfernandez

    sfernandez

    Joined:
    Feb 14, 2012
    Posts:
    104
    Thanks for your purchase and nice words :D

    I inform you, and to anyone interested, we just submitted a new version of NoesisGUI to Unity Asset Store. This means that new year promotion is near to end, so those who are hesitating, don't miss the opportunity to get our package at an incredible price.

    ;)
     
  25. JamesAHall

    JamesAHall

    Joined:
    Feb 4, 2014
    Posts:
    5
    I'm assuming NoesisGUI doesn't work on the Unity Web Player?
     
  26. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Nope, it doesn't. Sorry for that, but Unity doesn't allow native plugins in the web player. May be in the future, if Unity becomes compatible with WebGL we could be compatible.

    Thanks!
     
  27. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Only a few hours left before noesisGUI v1.1.4 appears in the store and the special price of $100 returns back to $250.

    I also wanted to share a sample using render to texture to integrate a Unity scene inside noesisGUI:



    More information here: http://www.noesisengine.com/forums/viewtopic.php?f=12&t=294
     
  28. sfernandez

    sfernandez

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

    >> Buy from Asset Store

    • Support for specifying a StaticResource in the Binding.Source property of a xaml.
    • Support for using ItemsControl directly in a xaml.
    • Support for "./" in UriConverter paths.
    • Substitution of glyphs not found in the font file with the replacement character (U+FFFD or a simple question mark).
    • UI Clipboard implemented using operating system clipboard.
    • Improved error messages when parsing SVG paths.
    • Added support for PropertyChangedCallback when creating PropertyMetadata for dependency properties.
    • Added DependencyProperty.RegisterAttached() function to match WPF API.
    • Removed "using Noesis" from Unity samples. Now all class names are fully qualified to avoid name collisions with user classes.
    • Improved API for Point, Transform2, Transform3, Matrix2, Matrix3, Matrix4. Deleted the 'f' at the end of the class name. For example, Transform2f has been renamed to Transform2.
    • UserControls defined in samples moved to Assets/NoesisGUI/UserControls. This folder will contain any UserControl we develop.
    • Minimal improvements to Images Tutorial in the section "Generating Images at Runtime".
    • Improvements to Class Hierarchy documentation. Class methods added.
    • Fixed: Added error message when NullExtension can't find target property.
    • Fixed: Bug when setting DataContext property to itself.
    • Fixed: Bug in TwoWay bindings when binding expression needed a full reevaluation.
    • Fixed: Bug in nested ResourceDictionaries when they are loaded more than once.
    • Fixed: Bug when selecting text during GotFocus event after clicking down over TextBox.
    • Fixed: Bug in TextBox not accepting characters with accents.
    • Fixed: Robustness improvements when using very small or very big matrices.
    • Fixed: Bug in TimeManager when transferring animations from a loaded xaml to the Renderer TimeManager.
    • Fixed: Bug when calculating the transformed bounds of a render node.
    • Fixed: TextBox edit problems on OS X.
    • Fixed: Changes to Clip geometry are now correctly notified to Visual, to update its bounding box.
    • Fixed: Rendered content was lagging one frame from Unity. This implied lagging performance to user.
    • Fixed: Crash when an Unity texture used by a xaml was destroyed.
    • Fixed: Occasional crash when closing.
    • Fixed: Bug in UnityBindings that were not restoring focused element after window deactivation.
    • Fixed: Bug in UnityBindings when an error was thrown while freeing RendererInfo resources during shutting down.
    • Fixed: Problems with StreamGeometryContext not closing on dispose solved.
    • Fixed: Texture2D flickering in Android.
    • Fixed: "Noesis.dll not unloaded" error after stopping Unity Player.
    • Fixed: Memory leaks.
     
  29. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    "Simply" not working in Unity3D running in Windows 7 in a Parallels virtual machine on recent Macbook. Examples give a D3DERR_NOTAVAILABLE.
     
  30. sloopidoopi

    sloopidoopi

    Joined:
    Jan 2, 2010
    Posts:
    244
  31. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    When booting to Bootcamp (native) Windows 7 I just get a crash of the editor while in DX11 mode. Back to DX10 results in OK first test, stopping the example results in hanging editor.
     
  32. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
  33. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    For now, only DX9/GL is supported. We are already working in DX11 and will have news very soon.

    Thanks!
     
  34. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    That would make Noesis a serious candidate for my further development. However, not being able to work in Parallels (D3DERR_NOTAVAILABLE) makes things more difficult... I use it a lot to do quick software changes and updates for our windows systems.
     
  35. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    can't you launch unity natively in your mac?
     
  36. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    I can, but our software runs only on dedicated Windows systems, because we're using some Windows-only features..
     
  37. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Then, why don't you run windows + unity natively and emulate Mac?

    Anyway, let me understand this, Parallels can run DX11 hw accelleration but cannot do the same for DX9?
     
  38. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    Parallels runs DX9 hardware acceleration. Our software relies on DX9, and will move to DX11 for some new features in the near future. When testing NoesisGUI for Unity under Parallels, I get a D3DERR_NOTAVAILABLE error. All other graphic features, including plugins that write to Unity textures from native code run very well under Parallels.
     
  39. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    could you send me the log (NoesisGUI.play.log inside /Assets) privately? let me investigate what feature we need that is not emulated by Parallels.

    thanks!
     
  40. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    I will, many thanks for getting into this. Beside of that small Parallels issue*and DX11 support, Noesis looks like a very good solution. Especially for NOT having your UI elements messing up the object tree in Unity. :) :) :)
     
  41. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Yes, the current approaches to GUI in Unity (native GUI, NGUI, etc) explain why it is so difficult to find AAA quality UIs in games.

    Thanks for your good comments and remember that you can use our forums directly (http://forums.noesisengine.com/) for a better support.
     
  42. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi, I didn't receive the logs but I think that the problem is the same that this one (http://www.noesisengine.com/forums/viewtopic.php?f=3&t=293). We fixed it in v1.1.5 (submitted to the store today). If you register at our forums you can download the trial now.
     
  43. sfernandez

    sfernandez

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

    >> Buy from Asset Store

    • Implemented CombinedGeometry GetBounds and Contains point.
    • UIRenderer fully qualified in Unity to avoid name collisions.
    • Touch sample improved with scale min/max values.
    • Exposed Noesis.Font class. Font.GetGlyphAdvance(uint ch) returns the advance for the specified character.
    • Improved memory efficiency of proxies.
    • Improved the stability of the plugin. Now the error handler mechanism is a lot faster inside the Editor and more robust.
    • Fixed: Problems with TextBox.MaxLength when inserting non-ascii tex.
    • Fixed: FrameworkElement Width Height value validation. It was failing for NaN values.
    • Fixed: Glitch when rendering text rotated by 180 degrees.
    • Fixed: RenderNodes correctly unconnected on Renderer destruction. This was causing crashes on shutdown.
    • Fixed: ContentPresenter and ItemsPresenter now disconnects content when template is removed.
    • Fixed: In rare occasions Renderer.WaitForUpdate() was locking for ever.
    • Fixed: Crash when GPU queries not supported.
    • Fixed: Memory leak when returning const references from math structs.
    • Fixed: Classes belonging to C# proxies are now always destroyed in the main thread. It was unsafe doing it in the garbage collector thread.
    • Fixed: Problem with KeyboardNavigation using arrow keys.
    • Fixed: Tab/Directional navigation: now selected item gets the focus.
    • Fixed: ControlGallery sample working in iPad retina.
    • Fixed: UnityEditor.DockArea.OnGUI() error messages.
     
  44. jeroenvdv

    jeroenvdv

    Joined:
    Oct 25, 2010
    Posts:
    52
    My apologies for that. I've been very busy on some non-software related projects last weeks. I'll test this ASAP, but I think, reading the topic you link, it sounds like it's definately the same problem, which should be solved in this new update :)

    Regards!

    Jeroen
     
  45. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Yes, it seems we indirectly fixed the problem with the virtual machine. :)
     
  46. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Very cool framework.

    1. Is it possible to create XAML GUI controls and components during run-time or everything has to be created ahead of time in the editor ?
    2. Can this be published to Google Native Client ?
    3. Does it support video playback?
    4. Are there any limitations as to the types of XAML components that can be built?
    5. Can it use XAML components from other microsoft platforms like Silverlight?

    Cheers.
     
    Last edited: Mar 9, 2014
  47. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Hi!

    Yes, you can create control at runtime. In fact, everything contained inside a XAML can be recreated by code.


    Being noesisGUI a native C/C++ plugins it is not supported currently by Unity.

    Yes, through video textures or using 3rdparty plugins for mobiles. We have several clients doing that.


    This is the list of classes supported by noesisGUI: http://www.noesisengine.com/docs/Gui.Core._ClassHierarchy.html. For any doubts about this please ask for help in our forums.

    Not directly. But being the API very similar (we are based on WPF) the transition should be easy.
     
  48. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    VoidExpanse Alpha Trailer, a video game using noesisGUI

    Can you do this with the rest of alternatives to GUI in Unity? ;)

     
  49. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    With the news that WebGL support is coming with Unity 5, are you in talks with UT about integrating NoesisGUI into those builds? In other words: Will it be possible to use NoesisGUI with the upcoming WebGL build target of Unity?
     
  50. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,374