Search Issue Tracker
By Design
Votes
0
Found in [Package]
4.0.0-pre.2
Issue ID
TMPB-207
Regression
No
Printed text of the TextMeshPro input field is missing the last symbol and the length is one symbol longer
How to reproduce:
1. Open the user’s attached “testdatapersistence.zip” project
2. Enter Play Mode
3. In the input field insert “testing”
4. Observe the Console window
Expected result: “Name : testing : length 7” is printed
Actual result: “Name : testin : length 7” is printed
Reproducible with: 3.0.6, 3.2.0-pre.4 (2021.3.28f1), 4.0.0-pre.2 (2022.3.4f1, 2023.1.3f1, 2023.2.0a23)
Reproduced on: macOS 13.2.1 (Intel)
Notes:
If pressing the delete key when there’s no text in the input field then the printed length is 1
Not reproducible with legacy input field
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Silent crash when clicking in Scene View in a specific project
- The Player renders black on a Quest headset when MSAA, Post Processing, and Spacewarm depth submission are enabled
- Graphics Compositor breaks Unity rendering when the "Output Camera" is changed to a scene Camera and one Camera SubLayer is active
- The Editor freezes on RenderGraphViewer.Repaint when entering too many characters in search fields without character limits
- Adding a new SubLayer in Graphics Compositor renders BaseLayer darker and makes it flicker
Resolution Note:
The "OnValueChanged" event for TextMeshPro InputField is triggered before the new value is fully processed.
The suggested workaround is to employ a one-frame-delay coroutine for operations that require the updated text:
public void CheckNameLength()
{
StartCoroutine(DelayedCheckNameLength());
}
private IEnumerator DelayedCheckNameLength()
{
yield return null; // wait for one frame
Debug.Log($"Name : {nameInputText.text} : length {nameInputText.text.Length}");
}
As for the length of the text, this is also expected as the TMP InputField appends the ZWS unicode to handle the cursor on new lines.