STARasGAMES / tmpro-dynamic-data-cleaner

Clears TextMeshPro dynamic font data whenever Unity tries to save font asset to disk. This data is binary and generative so there is no need to store it on disk.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

TextMeshPro dynamic font assets have a very annoying habit of saving their dynamically generated binary data in the same text file as their configuration data. This causes massive headaches for version control.

The script from this package addresses the above issue. It runs whenever any assets in the project are about to be saved. If any of those assets are a TMP dynamic font asset, they will have their dynamically generated data cleared before they are saved, which prevents that data from ever polluting the version control.

Credits to @cxode which came up with this brilliant solution:
https://forum.unity.com/threads/tmpro-dynamic-font-asset-constantly-changes-in-source-control.1227831/#post-8934711

My contribution is making script into a upm compatible package that could be easily installed.
Some performance improvements and additional checks were made for edge cases.
Also, I created a test to quickly test whether script is working properly in your project/unity version.

Installation

Install via git URL: https://github.com/STARasGAMES/tmpro-dynamic-data-cleaner.git#upm

Or by adding a new entry in your manifest.json.

{
  "dependencies": {
    "com.starasgames.tmpro-dynamic-data-cleaner": "https://github.com/STARasGAMES/tmpro-dynamic-data-cleaner.git#upm",
    ...
  },
  "testables" : ["com.starasgames.tmpro-dynamic-data-cleaner"]
}

To make integration test visible in the TestRunner window you need to add the "testables" attribute, but this is optinal.

About

Clears TextMeshPro dynamic font data whenever Unity tries to save font asset to disk. This data is binary and generative so there is no need to store it on disk.

License:MIT License


Languages

Language:ShaderLab 78.1%Language:HLSL 13.6%Language:C# 8.3%