3
votes

I am trying to run font asset creator of TextMesh Pro 1.2.4 on Unity 2018.1.6f1 on Fedora 27. I've got the following errors:

I've heard that TextMesh hasn't been supported on Linux yet. Is it still true?

DllNotFoundException: TMPro_Plugin TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.DrawControls () (at /root/.config/unity3d/cache/packages/packages.unity.com/[email protected]/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:704) TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnGUI () (at /root/.config/unity3d/cache/packages/packages.unity.com/[email protected]/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:266) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at :0) UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:291) UnityEditor.HostView.Invoke (System.String methodName) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:284) UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:257) UnityEditor.DockArea.OldOnGUI () (at /home/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:386) UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt) (at /home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:234) UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at /home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:372) UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at /home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:356) UnityEngine.Experimental.UIElements.EventDispatcher.DispatchEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at /home/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:215) UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at /home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:224) UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:77) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /home/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:184)

llNotFoundException: TMPro_Plugin TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnDisable () (at /root/.config/unity3d/cache/packages/packages.unity.com/[email protected]/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:204) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

1
Why downvoting for god's sake. There is no answer on internet for this and I think answer to my question will help many Unity programmers using linux. Why not writing a comment so that I know where I made a mistake?? - Aykut Karaca
Please use beauty text in order to show Exceptions - also use brackets for codes. Without good expression and syntax - you may receive negative votes. By the way, your question need to be answered - no problem on it. - nuriselcuk
Thanks Nuri for your constructive comment. I am new to Stack site. Hope that someone knows the answer. - Aykut Karaca
Did you try to build the project? TextMeshPro should work in a build on Linux - Programmer
Error appears on console when I try to generate a font atlas for an imported font under font asset creator. So I cant even create a text with my wanted font to start with. - Aykut Karaca

1 Answers

2
votes

The native side of the code required to generate text is not available on Linux yet. The plugin itself should work during run-time in a build but its Editor tool is not supported on Linux. The Editor tool is only supported on Windows and Mac.

The original reason for the lack of support is because only few people use Linux when enveloping games with Unity. Also Unity Editor itself does not support Linux officially. Whatever support they have for it is still in experimental mode and there are many issues that makes it not worth using at this point.

Since TextMesh Pro is now bought by Unity, it's very likely that Linux will be supported. You should wait until Unity finally integrate it with Unity and maybe they will add support for Linux. At this moment, I think you should file for a bug report to remind Unity that this issue is still there then just use the Text component until they fix it. If you still want to use TextMesh Pro, a workaround is to use VMware Workstation to run Windows or MacOS on your Linux then you can use them to create the Text Assets and export and import them as Packages in your Linux project.