从脚本中删除先前在 TextMeshPro 中输入的文本 [重复]

Posted

技术标签:

【中文标题】从脚本中删除先前在 TextMeshPro 中输入的文本 [重复]【英文标题】:Delete previously entered text in TextMeshPro from script [duplicate] 【发布时间】:2021-08-22 11:49:30 【问题描述】:

我正在向 TextMeshPro 添加文本,但我不知道如何从文本框中删除之前输入的文本。我在网上找到的只是我不想要的 string.empty() 。 例如

public TMP_Text textMeshPro;

void Start()

   textMeshPro.text = "85" + "<sprite index=0>";

所以在上面给出的这种情况下,如果我点击“退格”,精灵应该首先被删除,然后如果我再次按退格,5应该被删除,最后是8。也就是说,每个字符串都应该像这样被删除我们在计算器上做。 有没有办法做到这一点?

【问题讨论】:

@Lotan 不幸的是,没有,它没有用。我试着做textMeshPro.text.Remove (textMeshPro.text.Length - 1),但什么也没发生。它有什么问题? textMeshPro.text = textMeshPro.text.Remove(textMeshPro.text.Length - 1) 什么也没发生? @Lotan 也尝试过。什么也没发生。 这是一种删除字符串最后一个字母的方法,恐怕你的问题与删除的东西有关:( @Lotan 它工作了 :) 我的脚本有问题,因为我正在运行多个实例,我创建了新脚本然后运行,它工作。我的一个问题是我想将“”作为一个字符串/字符删除。我如何做到这一点? 【参考方案1】:

我不确定这是否能解决你的问题,但我的建议是:

    string text= textMeshPro.text.toString();
    string finalText=""
    textMeshPro.text=""
    for(int i=0; i<text.ToCharArray().Count()-1;i++)
    finalText+=text.ToCharArray()[i];
    
    textMeshPro.text=finalText;

基本上,我建议:将整个文本作为字符串获取,然后将它们转换为char数组,然后您可以控制每个char。

【讨论】:

你能补一下代码吗,finalText += 是什么? 对不起,我以为是我写的。

以上是关于从脚本中删除先前在 TextMeshPro 中输入的文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从表格的下拉菜单中删除先前选择的选项?

根据先前的输入从数据库中获取输入值

如何从 Postgres Heroku 上的先前备份中恢复特定数据? (例如,意外删除的行)

unity3D创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

为啥当 Interstitial 关闭时先前输入的文本会从 TextView 中消失

删除先前的标记并在更新的 lat lng 中添加标记