首页 > 解决方案 > 在开始时访问和分配 TMP_Text

问题描述

我目前正在使用 Inspector 分配每个文本元素,但我想通过代码而不是在我的 start 方法中分配它们。

我有多个组件,如何按名称查找组件。我需要每个组件与我创建的变量相匹配。

public class Timer : MonoBehaviour
{

    public TMP_Text p1Name;
    public TMP_Text p2Name;
    public TMP_Text p1Score;
    public TMP_Text p2Score;

    private void Start()
    {
        
    }```

标签: c#unity3d

解决方案


如果您想按名称获取它们,请使用该行

GameObject.Find("NameHere")

然后抓取你需要的组件

TMP_Text yourText = null;

private void Start()
{
      yourText = GameObject.Find("nameHere").GetComponent<TMP_Text>();
}

如果您的所有文本对象都是同一个父对象的子对象,您还可以遍历父对象的变换而不是较大的对象Find并使用Transform.Find. 您是否有理由不想在检查员中分配它们?分配参考而不是找到它们Start会更快。


推荐阅读