Page 1 of 1

Font Importer

Posted: 19 Jun 2022, 00:09
by Feldruebe
Hello,

I have the problem that noesis imports fonts automatically with its own importer.
This leads to missing fonts in other components that are depending on them.
Is there an option to disable this behaviour?

Additionally, I am getting two errors when changing the importer.
MissingReferenceException: The object of type 'NoesisFont' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Object.get_name () (at <d8d38b92d94a4ff8a91e61d39c6d19cd>:0)
UnityEditor.ObjectPreview.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.Editor.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.Editor.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.PropertyEditor.DrawPreviewAndLabels () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
MissingReferenceException: The object of type 'NoesisFont' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Object.get_name () (at <d8d38b92d94a4ff8a91e61d39c6d19cd>:0)
UnityEditor.ObjectPreview.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.Editor.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.Editor.GetPreviewTitle () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEditor.PropertyEditor.DrawPreviewAndLabels () (at <c131a2bddec5488c9acbc95523658064>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Single pixelsPerPoint, System.Exception& immediateException) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
Rethrow as ImmediateModeException
UnityEngine.UIElements.UIR.RenderChain.Render () (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIRRepaintUpdater.Update () (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.Panel.UpdateForRepaint () (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.Panel.Repaint (UnityEngine.Event e) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <cce578fc5f344bd79194d0850d7f4c47>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <779d5b0ed0e842c7bd49637f7c03a309>:0)

Re: Font Importer

Posted: 20 Jun 2022, 12:49
by jsantos
Changing the font importer to the default one (and ignore the errors) should work fine. Of course, that font won't be available to be used by Noesis.

Re: Font Importer

Posted: 21 Jun 2022, 22:09
by Feldruebe
The problem is when I change the importer I get the exceptions and the importer is not changed.
So I'm stuck and can not change to the default importer.

Re: Font Importer

Posted: 22 Jun 2022, 12:03
by jsantos
#2262 fixed this. What version of Noesis are you using?

Re: Font Importer

Posted: 25 Jun 2022, 15:57
by Feldruebe
Hmmm

I am using
- Noesis 3.1.4
- Unity 20221.1.3f1

The problem still exists for me.
The patch mentioned in the NoesisPostprocessor is in the cs file.
As a quick fix, I commented it out. Now I can change the importer but don't get the noesis importer as default.
But that was any way the behaviour I asked for.

Re: Font Importer

Posted: 27 Jun 2022, 19:48
by jsantos
I am trying it right now with NoesisGUI 3.1.5 and Unity 2021.2.3f1:

1. Creating a new project
2. Drag and Drop a true type font to the root of the project
3. Unity imports it and a thumbnail is generated
4. Select the font and the preview rendered with Noesis is displayed
5. Go to importer and set UnityEditor.TrueTypeFontImporter
6. No warnings or error are displayed
7. The font is no longer imported by Noesis.

Could you please verify these simple steps?

Re: Font Importer

Posted: 29 Jun 2022, 18:56
by Feldruebe
I tried it today with a new Project and Noesis 3.1.5.
At step 5 I got again the errors.


Re: Font Importer

Posted: 05 Jul 2022, 16:50
by jsantos
I will try to use exactly the same Unity version you are using. Could you please open a ticket about this?

Re: Font Importer

Posted: 13 Jul 2022, 18:26
by jsantos
Thanks for the ticket #2377!