Skip to content

Sprite and/or Rich Text tags in TextMesh label is stopping character animations #10

@cellininicholas

Description

@cellininicholas

My character animations are getting as far as the character I have in my text.
I'm even skipping the sprite character animation setup.

for (int i = 0; i < tweener.CharacterCount; i++)
{
    TMP_CharacterInfo charInfo = textInfo.characterInfo[i];
    if (charInfo.elementType == TMP_TextElementType.Sprite) {
        Debug.LogWarning($"TMP_TextElementType.Sprite character");
        continue;
    }
    // Character animation setup comes next...
                
}

I've found that if I edit the Text live in the Editor and delete the Sprite, the animations for all the characters suddenly start working.
Any tips?


Update 1
In fact, it looks like that is the case with all Rich Text Tags in my TextMeshPro label...


Update 2
I've discovered that in CharTweener::UpdateCharPositions()
There is a check which is skipping characters after a Sprite character...

for (var i = proxyTransformList.Count - 1; i >= 0; i--)
{
    // ...
    if (proxy.CharIndex >= characterCount)
        continue;
    // ...
}

Looks like proxy.CharIndex is referencing the index of characters BEFORE Rich Text Tags are passed and characterCount uses the count AFTER Rich Text Tags are passed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions