«GameObject может содержать только один компонент« Graphi c ».» проблема - PullRequest
0 голосов
/ 17 февраля 2020

Я создаю игру-викторину в 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);

но ничего. У кого-нибудь была похожая проблема? Я много искал, но не нашел решений. Спасибо за помощь.

1 Ответ

0 голосов
/ 18 февраля 2020

Похоже, что questionImagePrefab уже имеет компонент Image. Если это так, вам не нужно добавлять Image компонент к вашему игровому объекту (потому что он уже есть).

Я предлагаю вам попробовать удалить строку:

questionImagePrefab.AddComponent(typeof(Image));

и опубликуйте результаты здесь.

...