Как отключить кнопку, и включить её только при выпол. услов.
|
|
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; }
А если убрать фигурные скобки, будет значительно красивее.
Долгожданный анонсик: 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? Связи не вижу.
Цитата А если обернуть в контроллер ввода, то будет куда более красивее.
А если ставить открывающие фигурные скобки с новой строки, будет ещё красивее. Алсо, если часто рисуется UI, то стоит кэшировать Button, чтобы каждый раз GetComponent не гонять. А так да, по финалу у него по-хорошему что-то подобное должно быть.
Долгожданный анонсик: State of War
|
|
| |