Основи на графичния интерфейс (наследство)

Този раздел описва всичко, от което се нуждаете, за да програмирате контроли (контроли, наричани по-долу контроли) с помощта на UnityGUI .

Създаване на контроли с UnityGUI

Контролите UnityGUI използват специална функция OnGUI (). Функцията OnGUI () се нарича всеки кадър, стига скриптът, в който е включен, точно както функцията Update () .

Самите GUI контроли имат проста структура. Това може да се види в следващия пример.

Този пример е пълен товарач на функционално ниво. Ако копирате скрипта и го прикачите към GameObject, след влизане в режим на възпроизвеждане ще видите следното меню:

основите
Меню на Loader, създадено от примерния код

Нека да разгледаме подробностите на примерния код:

Тъй като кодът в метода OnGUI () се извиква всеки кадър, не е необходимо изрично да създавате или изтривате GUI контроли. Линията, която декларира контрола, всъщност го създава. Ако трябва да покажете контроли в определен момент, можете да използвате всякакъв вид програмна логика за това.

В този пример GUI.Button () се извиква само всяка секунда, така че бутонът ще се появи и изчезне. Потребителят може да щракне върху бутона само когато е видим.

Анатомия на контрола

Определянето на GUI контрол изисква три ключови части информация:

Тип (позиция, съдържание)

Имайте предвид, че тази структура е функция с два аргумента. Сега ще разгледаме по-отблизо тази структура.

Типът е тип контрол и се дефинира чрез извикване на Unity GUI клас или функция клас GUILayout, която е подробно описана в режимите на оформление. Например GUI.Label () ще създаде неинтерактивен етикет. Всички други видове контроли ще бъдат описани по-късно, в раздела за управление на това ръководство.

Координатите се отчитат от горния ляв ъгъл. Rect (10, 20, 300, 100) дефинира правоъгълник, който започва с координати: 10.20 и завършва на 310.120. Струва си да се повтори, че втората двойка числа в Rect () е ширината и височината, а не координатите, където трябва да завърши контролата. Ето защо в горния пример контролът завършва на 310 120, а не на 300 100.

Можете да използвате свойствата Screen.width и Screen.height, за да получите общите размери на екрана, достъпни за плейъра. Следният пример може да изясни как се прави това:

unity
Кутии, поставени в примера по-горе

Съдържание

Вторият аргумент за GUI контролата е съдържанието, което се показва в контролата. По-често ще искате да покажете някакъв текст или изображение в контролата си. За да покажете текст, предайте низ като аргументи, като например:

За да покажете картина, декларирайте публична променлива от тип Texture2D и предайте името й като аргумент, като този:

Ето пример от реалния живот:

Бутони, създадени в горния пример

Има и трета опция в GUI контрола, която позволява да се показват както текст, така и изображения заедно. Можете да предадете обект GUIContent като аргумент „съдържание“ и да дефинирате низ и изображение в GUIContent.

Можете също така да дефинирате подсказка в GUIContent и да я покажете някъде в GUI при нанасяне на мишката.

Ако сте достатъчно смели, можете да използвате GUIContent, за да покажете линия, икона и подсказка!

Помощта за конструктора GUIContent има няколко примера за нейното използване.