Noesis 2.0 and Unity 5.6
Hi there,
Yesterday, I decided to “upgrade” my full project, switching from Unity 5.4 / Noesis 1.2 to the latest Unity 5.6 and Noesis 2.0.
I updated the syntax of my views and my various usercontrols, so that they load the XAML content from the constructor. The syntax is now OK, scripts are compiling flawlessly.
At first, I ran into a first major issue : If I tried to merge resource dictionaries being included in a subfolder of a Resources folder, it seems that Noesis wasn’t able to find them :
Eg. :
Has to be replace by :
Once this issue found, I was able to display any XAML file that was not referencing any of my UserControl (no issue with CustomControl) : But, any of my xaml file referencing an user control doesn’t seem able to load the given UserControl.
In the Unity Workspace, the new XAML preview doesn’t appear, and I have the following message :
The message disappears if I force the xaml .asset regeneration (eg by deleting the XAML and asset file, switching to Unity, and undoying the file deletion so that it recreate the asset file). In this case, the UserControl appears correctly in the Unity property panel preview.
When running, it may either show the following error :
Or even crash Unity.
Any idea ?
Regards,
Roland
Yesterday, I decided to “upgrade” my full project, switching from Unity 5.4 / Noesis 1.2 to the latest Unity 5.6 and Noesis 2.0.
I updated the syntax of my views and my various usercontrols, so that they load the XAML content from the constructor. The syntax is now OK, scripts are compiling flawlessly.
At first, I ran into a first major issue : If I tried to merge resource dictionaries being included in a subfolder of a Resources folder, it seems that Noesis wasn’t able to find them :
Eg. :
Code: Select all
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../../Resources/XAML/RD_CommonColors.xaml"/>
</ResourceDictionary.MergedDictionaries>
Code: Select all
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../../Common/XAML/RD_CommonColors.xaml"/>
</ResourceDictionary.MergedDictionaries>
In the Unity Workspace, the new XAML preview doesn’t appear, and I have the following message :
Code: Select all
NoesisException: Xaml not found 'Assets/Covirtua/Orthophonie/Common/Controls/WaitingScreenControl.xaml'
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:21)
When running, it may either show the following error :
Code: Select all
Exception: Xaml not found 'Assets/Covirtua/Orthophonie/Common/Controls/WaitingScreenControl.xaml'
NoesisXaml.Load () (at Assets/NoesisGUI/Plugins/NoesisXaml.cs:26)
NoesisView.LoadXaml (Boolean force) (at Assets/NoesisGUI/Plugins/NoesisView.cs:311)
NoesisView.OnEnable () (at Assets/NoesisGUI/Plugins/NoesisView.cs:370)
Any idea ?
Regards,
Roland
Re: Noesis 2.0 and Unity 5.6
Ok, got some of my scenes running, by referencing some of my UC from the "Preloaded XAML" section of the Noesis Settings view. In fact, as they were directly referenced in XAML, I thought that Noesis would have "include" them by default.
I still have some scene crashing (and crashing Unity) when opened ! I'll investigate and keep updating this post .
I still have some scene crashing (and crashing Unity) when opened ! I'll investigate and keep updating this post .
Re: Noesis 2.0 and Unity 5.6
OK, it also seems that my previous issues were directly related to the "importation" order of the various XAML. The fact that I was updating an existing project (created using 1.2) was probably causing some kind of internal mess. Using the "reimport" function of the various XAML files (to regenerate assets) seems to be a life savior and solves a lot of problems. The trick is, to do it in the right order.
[Edit] Another found issue : Copying a WPF style the one below causes no error at "asset building time", but leads to a runtime error ( because of the Stylus.IsFlicksEnabled property not being defined / it was ignored in Noesis 1.2 ).
[Edit] Another found issue : Copying a WPF style the one below causes no error at "asset building time", but leads to a runtime error ( because of the Stylus.IsFlicksEnabled property not being defined / it was ignored in Noesis 1.2 ).
Code: Select all
<Style x:Key="TextBox_Style" TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
Re: Noesis 2.0 and Unity 5.6
Seeing similar issue here. We have to spend about an hour reimporting our (many) XAMLs in the correct order until finally the views load, and some XAMLs still crash Noesis.
Trying to get a small/minimal repro for the last 40 minutes, but couldn't even load the Buttons sample on Unity 5.6 in a Blank 3D project after import/reimport/etc. Reported issue: https://bugs.noesisengine.com/view.php?id=1046
Edit: the issue you are seeing may be related to code-behind? Started a new thread on that topic here: viewtopic.php?f=3&t=1057
Trying to get a small/minimal repro for the last 40 minutes, but couldn't even load the Buttons sample on Unity 5.6 in a Blank 3D project after import/reimport/etc. Reported issue: https://bugs.noesisengine.com/view.php?id=1046
Edit: the issue you are seeing may be related to code-behind? Started a new thread on that topic here: viewtopic.php?f=3&t=1057
-
sfernandez
Site Admin
- Posts: 3134
- Joined:
Re: Noesis 2.0 and Unity 5.6
We've been fixing some issues related to Unity xaml procesing that should solve your problems.
But we are still working on adapting NoesisGUI to Unity 5.6 version changes. As soon as we are done we will release a new version.
Sorry for the inconveniences.
But we are still working on adapting NoesisGUI to Unity 5.6 version changes. As soon as we are done we will release a new version.
Sorry for the inconveniences.
Re: Noesis 2.0 and Unity 5.6
Hi there !
Back after two weeks of other duties, I've almost completed porting my app to Noesis 2.0.
First of all, thanks Jesus for the incoming fix !
As a matter of feedback, the following notes may help other people :
* For the transparent bitmap, as said in another thread (viewtopic.php?f=3&t=1036&p=5843&hilit=magick#p5843), you'll need to premultiply alpha, and uncheck this fuc*** "Alpha is Transparency" checkbox in Unity (otherwise, premultipliing is useless)
* If you are using Atlases with ImageBrushes with absolute viewport coordinates, be aware that absolute coordinates will refer to the image size after Unity processing : If you set up a different max size for your images on Android and Ios, for example, you'll probably encounter placement issues.
* If you have a very large font ( ROBOTO in 120 pt in my case), the spacing over the fond will not be the same than in WPF, and than in Unity 1.2, breaking your design. Consider using smaller font size and appliing a RenderTransform to your text
* I still have a blocker : Rendering a camera to bitmap, with a Noesis overlay may crash Unity, without any way to intercept the exception. I'll edit this post with a repro asap.
Back after two weeks of other duties, I've almost completed porting my app to Noesis 2.0.
First of all, thanks Jesus for the incoming fix !
As a matter of feedback, the following notes may help other people :
* For the transparent bitmap, as said in another thread (viewtopic.php?f=3&t=1036&p=5843&hilit=magick#p5843), you'll need to premultiply alpha, and uncheck this fuc*** "Alpha is Transparency" checkbox in Unity (otherwise, premultipliing is useless)
* If you are using Atlases with ImageBrushes with absolute viewport coordinates, be aware that absolute coordinates will refer to the image size after Unity processing : If you set up a different max size for your images on Android and Ios, for example, you'll probably encounter placement issues.
* If you have a very large font ( ROBOTO in 120 pt in my case), the spacing over the fond will not be the same than in WPF, and than in Unity 1.2, breaking your design. Consider using smaller font size and appliing a RenderTransform to your text
* I still have a blocker : Rendering a camera to bitmap, with a Noesis overlay may crash Unity, without any way to intercept the exception. I'll edit this post with a repro asap.
Re: Noesis 2.0 and Unity 5.6
Some additions on encountered issues. As I'm on the porting process, it's quite complicated to elaborate a bug ticket for any of them, and since I've found workaround for most of them, it's OK, at least for me !
* In my application, I've a video streaming of what's displayed. In 1.2, I was doing this, on a corouting of a persistant gameobject :
Doing this in 2.0 crashes Unity (and the app) when switching space, or when changing the capture resolution. So, I'd to use Texture2D.ReadPixel (and then perform a resize to my capture size).
There's still issues :
* By default, if you've Clear flags on your camera (eg., Solid Color), it will result as a black capture in the Windows Runtime (not in the editor).
* If you set up the "Enable Post Process", you'll have your bitmap, but mirrored vertically, and the "Flip vertically" property isn't available anymore, so you're stuck
* So, for now, the only way I found is to setup the Clearflags to None.
* Now it's OK, and words for fullscreen GUIs. For overlay guis (on another Camera, for example, dedicated to the UI), it's more complicated : I cannot change the Clear flags attribute of the camera, and if I enable post process, the GUI is still flipped vertically.
Two other minor bugs :
* I use GIT for my source repository. When I synchronized another computer, still on 1.2, with my updated version, the "Preloaded Xamls" array was not fullfilled.
* The "Enable Post Process" of the Noesis View doesn't invalidate the state of a space for Unity. So if you leave the space without modifying anything else, your change to this property is not saved.
* In my application, I've a video streaming of what's displayed. In 1.2, I was doing this, on a corouting of a persistant gameobject :
Code: Select all
// get the main camera
var refCamera = Camera.main;
// Prepare a render texture
RenderTexture refNewRenderTexture = new RenderTexture(nCaptureWidth, nCaptureHeight, 24);
// Set the render texture to the camera
refCamera.targetTexture = refNewRenderTexture;
// .. and render it !
refCamera.Render();
// Unset the render texture from the camera.
refCamera.targetTexture = null;
There's still issues :
* By default, if you've Clear flags on your camera (eg., Solid Color), it will result as a black capture in the Windows Runtime (not in the editor).
* If you set up the "Enable Post Process", you'll have your bitmap, but mirrored vertically, and the "Flip vertically" property isn't available anymore, so you're stuck
* So, for now, the only way I found is to setup the Clearflags to None.
* Now it's OK, and words for fullscreen GUIs. For overlay guis (on another Camera, for example, dedicated to the UI), it's more complicated : I cannot change the Clear flags attribute of the camera, and if I enable post process, the GUI is still flipped vertically.
Two other minor bugs :
* I use GIT for my source repository. When I synchronized another computer, still on 1.2, with my updated version, the "Preloaded Xamls" array was not fullfilled.
* The "Enable Post Process" of the Noesis View doesn't invalidate the state of a space for Unity. So if you leave the space without modifying anything else, your change to this property is not saved.
Re: Noesis 2.0 and Unity 5.6
A annoying point for people working with VR and Oculus :
- On Unity 5.6.0f3, the Windows Runtime crashes, when using Oculus, if a camera "Allow HDR" property isn't set to TRUE.
- However, setting "Allow HDR" to TRUE on a Camera associated with a NoesisView leads to the Error :"GL.End requires material.SetPass !".
The case is annoying when you have a Non-VR space (eg. : Menu ), and when you should switch off VR when entering the space. HDR has to be set to TRUE, otherwise the app will crash. The only way I found was to set up the HDR status of any camera (even in non VR space) to TRUE, and remove it when entering space.
- On Unity 5.6.0f3, the Windows Runtime crashes, when using Oculus, if a camera "Allow HDR" property isn't set to TRUE.
- However, setting "Allow HDR" to TRUE on a Camera associated with a NoesisView leads to the Error :"GL.End requires material.SetPass !".
The case is annoying when you have a Non-VR space (eg. : Menu ), and when you should switch off VR when entering the space. HDR has to be set to TRUE, otherwise the app will crash. The only way I found was to set up the HDR status of any camera (even in non VR space) to TRUE, and remove it when entering space.
Re: Noesis 2.0 and Unity 5.6
Hi tomczak,
Thanks a lot for your feedback! Many of your problems should have been resolved in the last 2.0.1 we released today. Could you please move pending issues to the tracker?
Could you also elaborate about this?
Thanks a lot for your feedback! Many of your problems should have been resolved in the last 2.0.1 we released today. Could you please move pending issues to the tracker?
Could you also elaborate about this?
At 120 we are rendering the glyphs using meshes instead of bitmaps but the spacing should be exactly the same as at smaller sizes. Could you paste a screenshot about it here please?If you have a very large font ( ROBOTO in 120 pt in my case), the spacing over the fond will not be the same than in WPF, and than in Unity 1.2, breaking your design. Consider using smaller font size and appliing a RenderTransform to your text
Who is online
Users browsing this forum: Google [Bot] and 5 guests