I have some semi-functional code for a pretend-caret in TMP. Basically, I want an Image to appear at the end of a regular TextMeshProUGUI string (as opposed to an InputField). I'm doing it sort of like this. Code (CSharp): charInfo = textInfo.characterInfo[charIndex]; //start at the end of the previous character float targetLocalX = charInfo.bottomRight.x; //add half of the caret's width targetLocalX += myRect.rect.width / 2f; //add half the width of the previous char so that the caret appears beneath the upcoming char float width = charInfo.vertex_BR.position.x - charInfo.vertex_BL.position.x; targetLocalX += width / 2f; I'm doing this with a monospaced font, so you'd expect that each char would have the same width. However, the width float comes out different each time; I believe it's only accounting for the drawn character, rather than the full width (including space) of the character. Is there a way to obtain the latter information? I think that's all I need to get this to work.