Воскресенье, 08 Декабря 2024, 11:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как отключить кнопку, и включить её только при выпол. услов.
DimaChemerysДата: Пятница, 31 Марта 2017, 11:16 | Сообщение # 1
был не раз
Сейчас нет на сайте
Как отключить кнопку, и включить её только при выполненном условии? Делаю игру платформер с уровнями, и вот потребовалась такая функция для постепенного открытия уровней.
URGINSANДата: Пятница, 31 Марта 2017, 11:48 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
У компонента Button есть галочка "interactable", когда галочка стоит - кнопка работает, когда наоборот - не работает (полупрозрачной становится).
Код

using UnityEngine.UI;
.
.
.
.
if (!levelOpen){
    GetComponent<Button>().interactable = false;
}else{
    GetComponent<Button>().interactable = true;
}


Как-то так.


Я на драйве
bodya_WMДата: Пятница, 31 Марта 2017, 12:06 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Если старый GUI то можно:

Код

if(GUI.Button(new Rect(0, 0, 100, 30), "Button") && buttonActive) {
// Do something
}


Разработчик игрового движка WaveGameEnvironment2D

Сообщение отредактировал bodya_WM - Пятница, 31 Марта 2017, 12:07
EchoITДата: Пятница, 31 Марта 2017, 12:54 | Сообщение # 4
старожил
Сейчас нет на сайте
bodya_WM, щас бы юзать старый GUI в 2017.

Цитата
if (!levelOpen){
GetComponent<Button>().interactable = false;
}else{
GetComponent<Button>().interactable = true;
}

А если убрать фигурные скобки, будет значительно красивее. :D


Долгожданный анонсик: State of War
DimaChemerysДата: Пятница, 31 Марта 2017, 13:05 | Сообщение # 5
был не раз
Сейчас нет на сайте
URGINSAN, спасибо.
bodya_WMДата: Пятница, 31 Марта 2017, 13:45 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Цитата EchoIT ()
щас бы юзать старый GUI в 2017.

Ты что то имеешь против IMGUI?
https://github.com/ocornut/imgui

Добавлено (31 марта 2017, 13:45)
---------------------------------------------

Цитата EchoIT ()
А если убрать фигурные скобки, будет значительно красивее.

А если обернуть в контроллер ввода, то будет куда более красивее.

Код


class BaseUIController : MonoBehaviour {
    
    public void DrawUI() {
        // Draw common hud
    }

}

...

class MenuUIController : BaseUIController {
  
  public GameObject UIMenuPane;
  public GameObject UIMenuStart;

  public override void DrawUI() {
    base.DrawUI();
    if(something)
        UIMenuPane.GetComponent<Button>().active = true;
    
  }

}


Так и код организовывать легче, и кроссплатформенная разработка легче.


Разработчик игрового движка WaveGameEnvironment2D
EchoITДата: Пятница, 31 Марта 2017, 23:20 | Сообщение # 7
старожил
Сейчас нет на сайте
Цитата
Ты что то имеешь против IMGUI?

Связи не вижу.

Цитата
А если обернуть в контроллер ввода, то будет куда более красивее.

А если ставить открывающие фигурные скобки с новой строки, будет ещё красивее. :D
Алсо, если часто рисуется UI, то стоит кэшировать Button, чтобы каждый раз GetComponent не гонять. А так да, по финалу у него по-хорошему что-то подобное должно быть.


Долгожданный анонсик: State of War
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг