У меня была проблема в течение всего дня, когда мой префаб с кнопкой появляется как ноль.Проблема возникла, когда я перешел от использования GameObject в своем коде к кнопке.Я должен был сделать это для моего слушателя, чтобы подать заявку правильно.Я пытаюсь создать список сохраненных игр из файла, и мне нужно различать кнопки, и я решил применить слушателя к каждой из них, чтобы получить целое число.Конкретная ошибка: «Объект, экземпляр которого вы хотите создать, равен нулю».Вот мой код
void Populate()
{
Button newObj = Instantiate(NewSave, transform) as Button; // Create GameObject instance
newObj.name = "NewSave";
startList();
}
public void startList()
{
Button newObj;
int i = 0;
clearList();
foreach (PlayerType nextPlayer in GameManager.instance.saveStorage.returnSaves())
{
i++;
// Create new instances of our prefab until we've created as many as is in list
newObj = (Button)Instantiate(OldSaves, transform);
//increment slot names
Debug.Log(i);
newObj.name = "Slot " + i.ToString();
newObj.onClick.AddListener(() => ButtonClicked(i));
saveList.Add(i);
}
}
Если вы заметили структурные проблемы с созданием определенной кнопки, пожалуйста, не пишите, я несколько раз порвал этот раздел кода с различными предложениями онлайн.
По сути, у меня есть 2 готовых кнопки, одна для новой кнопки сохранения, а другая для отдельных слотов сохранения.Он передает слушателя в функцию сохранения / загрузки и определяет, в какой слот его сохранить, перед отправкой в файл или из файла.Проблема заключается в первом создании кнопки, которая работала нормально, пока я не реализовал настройку прослушивателя и не переключился на использование кнопок.
Я убедился, что кнопки подключены через инспектор, и считаю, что это как-то связано с самим моим сборным, как при перемещении инициализации сборного объекта в другую строку, за которой он следовал.Вот несколько скриншотов моей установки.
Объекты инспектора
Кнопка Prefab
Спасибо за любую помощь, которая может помочь мне сузить проблему, большинство изПотоки, через которые я прошел, были простыми исправлениями, как будто они забыли подключить его в инспекторе, или у кого-то было несколько сценариев для одного и того же объекта.Я надеюсь, что это просто еще одна глупая ошибка, которую увидят новые глаза.Я опубликую дополнительную информацию или скриншоты по мере необходимости, когда зайду завтра после работы.
Обновление:
Я решил проблему.Я попробовал предложения и печатал, что пошло не так, когда я узнал, что одна из моих ссылок инспектора не была установлена.Я предположил, что при изменении исходных сохранений заполнителей он будет соответствующим образом устанавливать ссылки, однако я должен был изменить его в двух местах, поскольку у меня уже был установлен сценарий для объекта. populateave Раньше я не улавливал его, потому что моя иерархия сохранения состоит из 5 элементов, каждый из которых состоит из нескольких компонентов, поэтому, когда я прикрепил его через инспектор, я просто перешел к главной копии своего сценария.Он только прыгал между моими сценариями и находил, кто вызывает то, что конкретно произошло, и щелкает тот, который фактически содержит мой скрипт populateSave.Я собираюсь отметить второй ответ, потому что именно вы просили меня найти то, что вызывало его, что привело меня к выяснению этого.Большое спасибо, это даже объясняет, почему сейвы тоже не зацикливались, когда я их создавал, я по какой-то причине установил число сейвов в 23, смеется.
Не думаю, что смогу пометить комментарий как ответ, но все же хочу отдать вам должное, вы можете опубликовать свой комментарий как ответ или это противоречит правилам?