Я пытаюсь получить ссылку на два моих игровых объекта в Unity, которые представляют собой «ScoreEntryContainer» и его дочерний «шаблон»:
![screenshot](https://i.stack.imgur.com/wuuio.png)
В моем сценарии Я добавил две переменные publi c transform, чтобы получить ссылку на них. Однако Unity выдает NullReferenceException
, указывающий на ссылку на «Шаблон».
![Error](https://i.stack.imgur.com/3Vnxx.png)
Шаблон - это контейнер, в котором есть три игровых объекта Text UI.
В инспекторе я также назначил эти игровые объекты компоненту скрипта. Ошибка указывает на строку Debug.Log в приведенном ниже коде:
public class ScoreboardScript : MonoBehaviour
{
public Transform container;
public Transform template;
private List<ScoreEntry> scoreEntryList;
private List<Transform> scoreEntryTransformList;
public void Awake()
{
template.gameObject.SetActive(false);
scoreEntryList = new List<ScoreEntry>()
{
new ScoreEntry(10,150f),
new ScoreEntry(20,150f),
new ScoreEntry(30,150f)
};
foreach(ScoreEntry sc in scoreEntryList)
{
float templateHeight = 25f;
Transform entry = Instantiate(template, container);
RectTransform entryRectTransform = entry.GetComponent<RectTransform>();
entryRectTransform.anchoredPosition = new Vector2(0, -templateHeight * scoreEntryList.IndexOf(sc));
entry.gameObject.SetActive(true);
int rank = 0;
//entry.Find("SerialNoText").GetComponent<Text>().text = rank.ToString();
Debug.Log(entry.Find("SerialNoText").GetComponent<Text>().text); // Error here
float time = sc.time;
int minutes = (int)(time / 60);
int seconds = (int)(time % 60);
//entry.Find("TimeText").GetComponent<Text>().text = minutes.ToString() + ":" + seconds.ToString();
}
}
Есть идеи, почему это происходит?
См. Инспектор:
.
entry
является ссылкой на Template
GameObject.
См. Template
в инспекторе:
![Template](https://i.stack.imgur.com/rRTCp.png)