如何通过脚本修改 UI 文本?
How to modify UI text via script?
一个简单的问题:我正在尝试通过 C# 脚本修改 UI 文本(TextMeshPro,如果有任何区别的话)。我正在使用以下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Coins : MonoBehaviour
{
public Text coins;
void Start()
{
coins = GetComponent<Text>();
}
void Update()
{
coins.text = "text";
}
}
我在 Unity 2018 中做过类似的事情(我目前使用的是 Unity 2020.2)并且它在那里工作。
出于某种原因,它在这里不起作用。如果有任何帮助,我将不胜感激。
在 TMP 中更改文本几乎相同,但您需要添加 "using TMPro;"
并更改变量类型。代码应如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class Coins : MonoBehaviour
{
public TMP_Text coins;
void Start()
{
coins = GetComponent<TextMeshProUGUI>();
}
void Update()
{
coins.text = "text";
}
}
您需要引用 tmp 文本组件而不是普通的 Unity 文本组件:
而不是 GetComponent<Text>();
做 GetComponent<TextMeshProUGUI>();
当然别忘了:
using TMPro;
在您的代码之上。
要修改 TextMeshPro
个组件,您必须使用 TMP_Text
class。
public class Coins : MonoBehaviour
{
public TMP_Text coins;
void Start()
{
coins = GetComponent<TMP_Text>();
}
void Update()
{
coins.text = "text"; //or coins.SetText(“text”);
}
}
一个简单的问题:我正在尝试通过 C# 脚本修改 UI 文本(TextMeshPro,如果有任何区别的话)。我正在使用以下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Coins : MonoBehaviour
{
public Text coins;
void Start()
{
coins = GetComponent<Text>();
}
void Update()
{
coins.text = "text";
}
}
我在 Unity 2018 中做过类似的事情(我目前使用的是 Unity 2020.2)并且它在那里工作。 出于某种原因,它在这里不起作用。如果有任何帮助,我将不胜感激。
在 TMP 中更改文本几乎相同,但您需要添加 "using TMPro;"
并更改变量类型。代码应如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class Coins : MonoBehaviour
{
public TMP_Text coins;
void Start()
{
coins = GetComponent<TextMeshProUGUI>();
}
void Update()
{
coins.text = "text";
}
}
您需要引用 tmp 文本组件而不是普通的 Unity 文本组件:
而不是 GetComponent<Text>();
做 GetComponent<TextMeshProUGUI>();
当然别忘了:
using TMPro;
在您的代码之上。
要修改 TextMeshPro
个组件,您必须使用 TMP_Text
class。
public class Coins : MonoBehaviour
{
public TMP_Text coins;
void Start()
{
coins = GetComponent<TMP_Text>();
}
void Update()
{
coins.text = "text"; //or coins.SetText(“text”);
}
}