Событие Unity onclick для кнопки prefab не работает

Прямо сейчас в моем проекте 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");
}

Почему мое изображение на самом деле не появляется, если отладка работает? Я тоже прикрепил свое изображение к инспектору.

Я полагаю, изображение, которое вы назначили, находится в сцене? Как правило, связывание в префабах (это только префаб, когда он находится в папке с ресурсами) может быть проблематичным, поскольку в игре вам понадобятся ссылки на объекты в сцене (которые могут быть экземплярами префаба).

Gunnar B. 02.05.2018 20:49

@GunnarB. да, это все в одной сцене. И да, теперь я это понимаю. Есть ли другой способ обойти это?

coder5777 02.05.2018 21:14

Что ж, если все находится в одном префабе, ссылки должны работать правильно, когда вы создаете его экземпляр, хотя я не совсем уверен в этом. В противном случае, если вы не можете объединить его, вам придется настроить ссылки в коде (если вы сделаете это во время выполнения). В противном случае вы можете настроить его в инспекторе, конечно, просто нужно сделать это для фактического экземпляра (ов) кнопки (ов), а не для префаба. Для более конкретных решений вам нужно будет предоставить дополнительную информацию о том, что у вас есть, например со скриншотами.

Gunnar B. 02.05.2018 23:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
1 050
1

Ответы 1

изменение «Порядка в слое» может работать нормально.

Выберите свое изображение в иерархии и в Inspector-> Sprite Renderer-> Order in Layer измените порядок слоев с 0 на 1 или 2 и запустите игру, чтобы проверить, работает ли она.

Другие вопросы по теме