Unity - керівництво кастомизация

Кастомізація ваших GUI контролів

Коли у вас є багато стилів, з якими ви працюєте, ви можете визначити їх все в одному скіни (GUISkin). GUISkin - це не більше, ніж колекція GUIStyle'ов.

Як стилі змінюють зовнішній вигляд ваших GUI контролів

GUIStyle'и розроблені так, щоб бути схожим на каскадні таблиці стилів (Cascading Style Sheet, CSS), що застосовуються в браузерах. Було адаптовано безліч методологій CSS, які включають розмежування окремих властивостей станів для стилізації, і поділ між вмістом і поданням.

У той час як контрол визначає вміст, стиль визначає уявлення. Це дозволяє створювати такі комбінації як функціональний перемикач (Toggle), який виглядає як звичайна кнопка (Button).

Unity - керівництво кастомизация
Два контрола Toggle з різними стилями

Різниця між скінами (Skins) і стилями (Styles)

Як вже говорилося раніше, GUISkin - це колекція GUIStyle'ов. Стилі визначають уявлення GUI контрола. Ви не зобов'язані використовувати Skin, якщо ви бажаєте використовувати Style.

Unity - керівництво кастомизация
Один GUIStyle, показаний в інспектора

Unity - керівництво кастомизация
Один GUISkin, показаний в інспектора - зауважте, що він містить безліч GUIStyle'ов

Робота зі стилями

Всі функції GUI контролів мають опціональний останній аргумент: GUIStyle для відображення контрола. Якщо його пропустити, буде використаний Unity GUIStyle за замовчуванням. У надрах це працює за допомогою застосування імені типу контрола у вигляді рядка, так що GUI.Button () використовує стиль "button", GUI.Toggle () використовує стиль "toggle" і т.д. Ви можете перевизначати GUIStyle за замовчуванням для контрола за допомогою передачі його в якості останнього аргументу.

Unity - керівництво кастомизация
Контроли, створені в коді наведеного вище прикладу

Створення публічної змінної GUIStyle

Коли ви оголошуєте публічну змінну типу GUIStyle, все елементи стилю будуть відображені в інспектора. Ви можете редагувати всі з усіх представлених там значень.

Зміна різних елементів стилю

Unity - керівництво кастомизация
Стилі змінюються окремо для кожного скрипта і кожного GameObject'а

Будь-якому станом контрола спершу повинен бути присвоєний колір Background (фоновий колір) перед застосуванням зазначеного Text Color (колір тексту).

Для додаткової інформації про окремі GUIStyle'ах, будь ласка, прочитайте сторінку довідки по компоненту GUIStyle.

Робота зі скінами

У більш складних системах GUI, є сенс зберігати колекцію стилів в одному місці. Це якраз те, що роблять GUISkin'и. GUISkin містить безліч різних стилів, повністю змінюючи зовнішнє оформлення всіх GUI контролів.

Створення нового GUISkin'а

Для створення GUISkin'а, виберіть Assets-> Create-> GUI Skin в рядку меню. Після це буде створений новий GUI скін в папці вашого проекту. Виберіть його, щоб в інспектора побачити всі стилі (GUIStyles), певні в скіни.

Застосування скіна до GUI

Для використання створеного вами скіна, призначте його властивості GUI.skin у вашій функції OnGUI ().

Ви можете перемикатися між будь-якою кількістю скінів в одному виклику OnGUI ().

Зміна розміру шрифту GUI

Цей приклад демонструє як ви можете програмно динамічно змінювати розмір шрифту.

Спершу створіть новий проект в Unity. Потім створіть C # скрипт, назвіть його Fontsize.cs і вставте в нього наступний код:

Збережіть скрипт, прикріпіть його до порожнього GameObject'у і натисніть Play, щоб подивитися на те, як розмір шрифту циклічно збільшується і зменшується з часом. Ви можете помітити, що розмір шрифту змінюється не плавно. Це пов'язано з тим, що є певний набір можливих розмірів для шрифту (цей набір не нескінченний).

Саме в цьому прикладі потрібно, щоб шрифт, який використовується за умовчанням (Arial) був завантажений і відзначений як dynamic (динамічний). Ви не можете змінювати розмір шрифту, що не зазначеного як динамічний.

Схожі статті