hz-unity-tmp-resources
Skill200 starsChanged 53 days agoApache-2.0View on GitHub
Imports and configures TextMesh Pro Essential Resources for Unity projects targeting Meta VR and Horizon OS. Use when setting up TMP UI, fixing missing TMP materials or fonts, or resolving pink/magenta TMP text.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- mirzaaghazadeh/unity-meta-quest-skillsword for word, first seen Nov 15, 2026
Other versions1 project uses a version of this.
Word for word · 1
- mirzaaghazadeh/unity-meta-quest-skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- hz-android-2d-portingSkill
- hz-api-upgradeSkill
- hz-immersive-designerSkill
- hz-iwsdk-webxrSkill
- hz-metavrx-layout-sdkSkill
- hz-metavrx-ui-setSkill
- hz-new-project-creationSkill
- hz-perfetto-debugSkill
- hz-platform-sdkSkill
- hz-psdk-integrationSkill
- hz-quest-verify-firstSkill
- hz-react-native-expoSkill
- hz-simpleperf-debugSkill
- hz-spatial-sdkSkill
- hz-store-pwaSkill
- hz-store-submitSkill
- hz-unity-code-reviewSkill
- hz-unity-device-readinessSkill
- hz-unity-face-trackingSkill
- hz-unity-fbx-importSkill
- hz-unity-meta-core-sdkSkill
- hz-unity-meta-interaction-sdkSkill
- hz-unity-meta-mixed-reality-utility-kitSkill
- hz-unity-meta-movement-sdk-retargetingSkill
- hz-unity-meta-quest-uiSkill
- hz-unity-passthrough-camera-accessSkill
- hz-unity-placementSkill
- hz-unity-platform-sdkSkill
- hz-unity-project-analyzerSkill
- hz-unity-sdk-upgradeSkill
- hz-vr-debugSkill
- hz-xr-simulator-controlSkill
- hz-xr-simulator-install-and-configureSkill
- metavr-cliSkill
- portalSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use this skill automatically when any of the following are detected:
- Very specific: line 21
Every step below runs through unity-cli against an open Editor — no C# required.
- Very specific: line 42
Read data.result.count; 0 for both means the resources are not imported.
- Distinctive: line 60
After executing, you MUST:
- Distinctive: line 64
Do NOT assume import succeeded without confirmation.
- Distinctive: line 71
After the user confirms, re-run the checks and require both assets to exist:
- Very specific: line 115
If Window/TextMeshPro/Import TMP Essential Resources is not available:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TextMesh Pro Resources Import
When to use this skill
Use this skill automatically when any of the following are detected:
- TMP text appears pink/magenta in the scene
- Console errors mentioning
LiberationSans SDF,TMP Settings, or missing TMP materials - Creating the first TMP text element in a project
- User asks to set up TextMesh Pro or create UI text
Assets/TextMesh Pro/Resources/folder does not exist
Driving the Editor
Every step below runs through unity-cli against an open Editor — no C# required. Confirm one is
reachable first, and pass --project-path <proj> when more than one may be running:
unity status --format json # look for state "ready"Connecting, --project-path, and Safe Mode recovery are covered by the unity-cli skill. On a
Unity MCP server instead, see references/unity-mcp-fallback.md.
Step 1: Check if TMP resources are already imported
unity command find_assets --type TMP_Settings --format json
unity command find_assets --name "LiberationSans SDF" --format jsonfind_assets needs at least one of --type / --name / --label — with none it fails
"At least one of type, name, or label is required." Any one of them is enough on its own;
--search_in only narrows the scope and is optional.
Read data.result.count; 0 for both means the resources are not imported. If they are found,
stop here — no action needed.
Two ways count: 0 is not an error, so always judge on count rather than success:
- An unresolvable
--type(TMP not imported, soTMP_Settingsis not a loaded type) returnssuccesswithcount: 0— which is exactly the "not imported" signal here. - A nonexistent
--search_infolder also returnssuccesswithcount: 0.
Step 2: Import TMP Essential Resources
IMPORTANT: The TMP import opens a modal Unity dialog that requires manual user interaction. It cannot be fully automated.
unity command menu --path "Window/TextMeshPro/Import TMP Essential Resources"After executing, you MUST:
- Tell the user: "The Import Unity Package dialog has opened in Unity. Please click the Import button, then let me know when it's done."
- Wait for the user to confirm before proceeding.
- Do NOT assume import succeeded without confirmation.
The modal blocks the Editor, so expect this request to time out or return late — that is the dialog waiting on the user, not a failure.
Step 3: Verify import succeeded
After the user confirms, re-run the checks and require both assets to exist:
unity command find_assets --name "LiberationSans SDF" --format json
unity command find_assets --type TMP_Settings --format jsonA non-zero count for both is the bar. If either is 0, the import did not complete — do not
proceed to UI work. Editor import is only half the story: after deploying, confirm text actually
renders with metavr capture screenshot (pink/magenta text means the TMP shaders need a reimport —
see Troubleshooting).
Troubleshooting
Pink/magenta text after import
Force a reimport of the TMP shaders. This one needs C# (there is no reimport command), so run it via
run_script with the file outside Assets/:
// AgentScripts/ReimportTmpShaders.cs
using UnityEditor;
public static class ReimportTmpShaders
{
public static string Run()
{
var guids = AssetDatabase.FindAssets("t:Shader TextMeshPro");
foreach (var guid in guids)
AssetDatabase.ImportAsset(AssetDatabase.GUIDToAssetPath(guid), ImportAssetOptions.ForceUpdate);
return $"Reimported {guids.Length} TMP shaders.";
}
}unity command run_script --file AgentScripts/ReimportTmpShaders.cs --entry ReimportTmpShaders.Run --format json--file resolves against the project root, and keeping the script outside Assets/ means writing it
triggers no asset import or domain reload.
Menu item grayed out or missing
If Window/TextMeshPro/Import TMP Essential Resources is not available:
- Resources may already be imported — run Step 1 to check.
TMP package may not be installed:
unity command package_add --identifier com.unity.textmeshpro --confirm true --wait true --format json unity command package_list --scope installed --format json # verify--wait trueblocks until the package resolves. A successful add forces a recompile and domain reload, so treat anything after it as a separate command rather than chaining in one script.
Integration with meta-quest-ui skill
This skill handles importing TMP resources. For VR-specific UI configuration (canvas setup, text sizing, viewing distances), use the meta-quest-ui skill after TMP resources are imported.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

