Всем привет. Перепробовал кучу скриптов, не одна не подошла. У меня есть ui button и при клике на него должна сработать следующее.
layout.gameObject.SetActive(false);
Но все, что я пробовал делал из интернета либо не работает, либо сразу пропадает без нажатие на кнопки. Как быть? Скрипт к кнопке привязал. layout к объекту тоже привязал, box collider 2d тоже сделал (увидел в каком то уроке).
Это последнее что я пробовал:
using UnityEngine;
using System.Collections;
public class Button_close : MonoBehaviour
{
public GameObject layout; // Assign in inspector
void OnGUI()
{
layout.gameObject.SetActive(false);
}
}
Скрины
Привязка к кнопке:
В целом сделано почти верно...но box collider 2d на ui кнопке точно не нужен.
В свойстве кнопке OnClick нужно не просто добавить объект на котором висит скрипт-обработчик, а нужно в правой части этого обработчика выбрать тот самый метод, который будет обрабатывать.
При этом важно, чтобы метод находился в том самом скрипте, который обработает событие, а также, чтобы этот метод был публичным
using UnityEngine;
public class Button_close: MonoBehaviour {
public GameObject layout;
public void Close() {
layout.gameObject.SetActive(false);
}
}
Метод OnGUI предназначен для рисования GUI элементов и он тут вообще не нужен
P.S. Т.к. в данном случае управление закрытием выглядит странно: единственный скрипт с названием Button_close с одним методом Close, то в дальнейшем стоит сделать какой-либо объект с управляющим скриптом, например UI_Manager, в котором будут определены методы по управлению UI
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости