如何在文本中替换char颜色?

时间:2018-06-05 06:06:41

标签: c# unity3d replace colors char

我正在使用打字游戏,我想将文本中的字母颜色更改为红色,只有当我正确键入它时...就像这样: 提前谢谢: - )

 string myString = txt.text;
    char[] myChars = myString.ToCharArray();


    foreach (char c in myChars)
    {
        txt.text = txt.text.Replace(c.ToString(), "<color=red>"+c+"</color>");
        break;
    }

enter image description here

Updated Output

2 个答案:

答案 0 :(得分:4)

整个用户界面Text颜色随Text.color更改:

public Text txt;

void Start()
{
    txt.color = Color.red;
}

看起来您想要更改单个字符颜色。 Unity支持Rich Text,您可以更改文本中每个字符的字体样式,大小和颜色。这意味着用<color=yourcolor></color>括起字符会改变颜色。

public Text txt;

void Start()
{
    string goodText = "<color=red>G</color>ood";
    txt.text = goodText;
}

上面示例中的字符G将为红色。所有其他角色将采用黑色的默认颜色。您也可以为所有其他角色执行此操作。

在下面的示例中,Goo为红色,d为黑色(默认颜色)。

string goodText = "<color=red>Goo</color>d";

答案 1 :(得分:1)

这应该有用,试一试。

public UnityEngine.UI.Text myText;
 // Get index of character.
 int charIndex = myText.text.IndexOf ("S");
 // Replace text with color value for character.
 myText.text = myText.text.Replace (myText.text [charIndex].ToString (), "<color=#000000>" + myText.text [charIndex].ToString () + "</color>");