TEXDraw


| Documentation | WebGL Demo | Forum |



TEXDraw is an extension asset designed primarily for creating mathematical expressions inside Unity. TEXDraw renders expressions using mesh and dynamic fonts, so they can be changed dynamically in gameplay. It uses LaTeX as the standard syntax to define symbols or specific styles.



This asset contains 16 fonts + one packed sprite, all cumulates into +900 math symbols ready to be used in any kind of project, ranging from greek letters to geometrical symbols. These fonts and symbol packs are lightweight, yet optional, and can be removed later in the build if necessary.



TEXDraw can be displayed in Unity UI rendering or 3D mesh by simply attaching TEXDraw components to Unity objects. It also has built-in integrations with TextMeshPro SDF Rendering. Besides that, the asset source is fully open without embedding any compiled libraries into your project.



TEXDraw syntax is rich in features. With a custom LaTeX interpreter, it can draw various math scripts, integrals, roots, fractions, matrices, tables, etc., plus many glyph features including custom fonts, size, color, styles, alignments, word wrap, kerning, paragraph spacing, line spacing, lean indent, body margin, and much more.



TEXDraw is not just about displaying LaTeX. There are also additional components like TEXLink for clickable sections of text and TEXInput for the WYSIWYG runtime editor. The latest TEXDraw version aims to be mostly compatible with other TeX software like MathJax or TexStudio so if you have used them before, you can get familiar with TEXDraw syntax very quickly.



TEXDraw is mobile-friendly. It does not require any custom shaders. It also does nothing when nothing is changed. On the performance side; it is light and has its own memory pooling system to generate (nearly) zero GC allocation each time the text regenerates. TEXDraw has its own performance benchmark scene and shows that it is only up to 40% slower than standard UI Text.



Besides its great functionality in the game, it also offers a fully customized and functional editor, from project-wide preference, editor highlights, font manager, material management, benchmark tool, menu items, and many more. One of the best parts of using this asset is how it imports a new font, by just inserting any font or sprite, then letting the package do the rest of importing process.



More features are described in the documentation linked above. If you're encountering problems, have a look at the common troubleshooting section in the manual. Bugs and feature requests can be informed and requested using the forum or email. If you have purchased this asset you can request Git Access to get the bleeding (in development) version of this asset.