Я создаю игру-викторину в Unity, используя C#. Каждый вопрос состоит из двух игровых объектов: текст вопроса и изображение вопроса. Вот фрагмент скрипта:
[SerializeField] Text QuestionTask;
[SerializeField] Text QuestionImage;
[SerializeField] GameObject temp;
[SerializeField] GameObject questionImagePrefab
public void LoadQuestion(Question question)
{
CurrentQuestion = question;
//delete possible old elements
DeleteQuestion();
//set question Text and Image
QuestionTask.text = CurrentQuestion.QuestionTask;
QuestionImage.text = CurrentQuestion.QuestionImage;
questionImagePrefab.AddComponent(typeof(Image));
temp = Instantiate(questionImagePrefab);
temp.GetComponent<Image>().sprite= Resources.Load<Sprite>(QuestionImage.text);
}
Во время выполнения текст отображается, но изображение нет. В окне инспектора я вижу имя спрайта, но на экране игры ничего нет. После загрузки вопроса у меня появляется сообщение в консоли: «Невозможно добавить« Изображение »в QuestionImagePrefab, потому что« Изображение »уже добавлено к игровому объекту! Объект GameObject может содержать только один компонент« Графика c »». Я пытался вызвать метод:
Destroy(temp);
но ничего. У кого-нибудь была похожая проблема? Я много искал, но не нашел решений. Спасибо за помощь.