Addressables and TextMeshPro. Current Workflow?

I’m currently re-doing all of the Addressable-Groups in my game, and after setting up all of my groups, analysis comes back with only Warnings about TextMeshPro-assets (see below).

Having seen multiple different threads about this, such as:
[Bug 1.2.4] Duplicate TextMeshPro assets in bundles - Unity Forum
Bug - How to use TextMeshPro with an Addressable scene? - Unity Forum
Feedback - TextMeshPro & Addressables (Asset Bundles) - Unity Forum

Many of these seem incomplete, outdated, etc.

So my question is:
What’s the current, up-to-date workflow for using TextMeshPro with Addressables?

Some details:

  • All of my addressables are loaded from ‘local storage’. The idea behind them is to offer customization, not necessarily ‘dlc’.
  • TMP-assets are used both inside & outside of addressable assets
  • I’m currently not using custom fonts & font-assets, but might choose to do so in the future (does this alter the workflow?)
4 Likes

I am just now dealing with this same problem. As noted in the 3rd Unity Forum link you provided (which I had also found earlier), the only ways around this duplication problem at the present are to hack TMP code and replace all the Resource.Load calls and with Addressable Async load calls.

Not a big fan of that approach, but otherwise there is nada. On down in that thread’s discussion there is a sample class that looks like it will replace the Resource.Load calls. I’d have to really study that before I understand what that is supposed to do, but it looks less hacky than the nasty things I am dreaming would have to be done.

Can you make sense out of that method posted by [mention|78Zkzwqt5pQzH5Z+zOgmdw==] in that thread? It doesn’t seem too out of date as it was posted in October of last year (2022), so I think that will work if I can figure out how/where to use the code.

KAJed makes this statement and I am not clear yet on what this means, “Obviously this requires keeping a local copy of the TMP package but it’s not a terribly involved process.”

I thought the impetus was to remove the local copy and move it to Addressables… sorry but I am still learning all this so I am probably way off base.

Do you have any insight as to the method and what is meant by that statement?

Clarifying my statement:

In order to add support for addressables you need to modify the TMP package. This means you cannot use the Package Manager version but instead copy the folder from Library/PackageCache and modify all code that loads anything TMP related to use Addressables.

The number of places in TMP code that actually require file be loaded from Resource folders are relatively limited so it’s entirely reasonable to replace them all.

3 Likes