Прямо сейчас в моем проекте Unity у меня есть список кнопок, которые появляются в списке прокрутки при запуске игры. Каждая из этих кнопок связана с кнопкой сборной. Я пытаюсь сделать так, чтобы при нажатии любой из этих кнопок появлялось изображение. У меня есть этот код, прикрепленный к моей кнопке prefab, и я протестировал его с помощью журнала отладки, и он работает нормально, но изображение на самом деле не всплывает. Я не уверен, в чем проблема. Все это связано с моим пользовательским интерфейсом. Вот мой код:
public Image popUpImage;
void Start ()
{
popUpImage.enabled = false;
button.onClick.AddListener (activatePopUp);
}
public void activatePopUp()
{
popUpImage.enabled = true;
Debug.Log("pop up is active");
}
Почему мое изображение на самом деле не появляется, если отладка работает? Я тоже прикрепил свое изображение к инспектору.
@GunnarB. да, это все в одной сцене. И да, теперь я это понимаю. Есть ли другой способ обойти это?
Что ж, если все находится в одном префабе, ссылки должны работать правильно, когда вы создаете его экземпляр, хотя я не совсем уверен в этом. В противном случае, если вы не можете объединить его, вам придется настроить ссылки в коде (если вы сделаете это во время выполнения). В противном случае вы можете настроить его в инспекторе, конечно, просто нужно сделать это для фактического экземпляра (ов) кнопки (ов), а не для префаба. Для более конкретных решений вам нужно будет предоставить дополнительную информацию о том, что у вас есть, например со скриншотами.





изменение «Порядка в слое» может работать нормально.
Выберите свое изображение в иерархии и в Inspector-> Sprite Renderer-> Order in Layer измените порядок слоев с 0 на 1 или 2 и запустите игру, чтобы проверить, работает ли она.
Я полагаю, изображение, которое вы назначили, находится в сцене? Как правило, связывание в префабах (это только префаб, когда он находится в папке с ресурсами) может быть проблематичным, поскольку в игре вам понадобятся ссылки на объекты в сцене (которые могут быть экземплярами префаба).