Как скрыть ui объекты в unity?

606
11 апреля 2017, 07:59

Всем привет. Перепробовал кучу скриптов, не одна не подошла. У меня есть 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);
    }
}

Скрины

Привязка к кнопке:

Answer 1

В целом сделано почти верно...но 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

READ ALSO
с# wfp как сделать тумблер?

с# wfp как сделать тумблер?

В wpf не силен, так что написать свой элемент наверное не судьбаРешил наследоваться от кнопки и изменять ее цвет по нажатию

214
Visual studio 2017 есть ли способ дебажить web запросы?

Visual studio 2017 есть ли способ дебажить web запросы?

Использую в своём C# проекте библиотеку xNetВозникла потребность посмотреть что передаёт данная библиотека в интернет без установки сторонних...

204
Как вложить в код базу данных [требует правки]

Как вложить в код базу данных [требует правки]

Возможно ли каким нибудь образом заложить в код знания, то есть типа чтобы софт знал то то и то то? Ну это не совсем если то, то тогда то, то есть...

222