Unity3d jednoduché menu v ruštine. Ako vytvoriť menu v hre v Unity

  • 28.06.2019
Dobrý deň, drahí vývojári hier.
Na internete je veľa lekcií o vytváraní hier v Unity3D, ale na hornej vrstve a určených pre začiatočníkov je ich veľmi málo.
V tejto sérii tutoriálov popíšem, ako vytvoriť herné menu pomocou štandardného GUI, bez použitia neštandardných komponentov.
Lekcia je určená pre začiatočníkov, ktorí sa chcú naučiť vytvárať si vlastné menu v hre.

Na konci prvej lekcie budete mať herné menu s pracovnými tlačidlami:

V lekcii budú použité nasledujúce funkcie:
1) verejný int- priradenie premennej k číselnej hodnote
2) GUI.BeginGroup- vytvorenie skupiny GUI
3) Tlačidlo GUI- Vytvorenie tlačidla GUI
4) Debug.Log- zobrazenie správy v konzole
5) Application.LoadLevel- úrovňové zaťaženie
6) Aplikácia. Ukončiť- uzavretie hry

Takže začnime:
Krok 1: Vytvorte skript v okne Project C # a pomenujte ho vlastným spôsobom.
Krok 2: Poďme vytvoriť hernú kameru:
* V hornej ponuke programu kliknite na položku GameObject
* Po kliknutí sa zobrazí rozbaľovacia ponuka, v ktorej klikneme na položku Vytvorte iné
* V zobrazenom zozname kliknite na riadok s názvom Kamera a po tejto akcii sa objekt zobrazí v okne Hierarchia fotoaparát

Krok 3: Priraďte skript k objektu Camera, ktorý sme vytvorili v prvom kroku. Ak to chcete urobiť, v okne Projekt nájdeme váš skript, nazval som ho Menu, a presuňte ho do okna Hierarchia na objekt Fotoaparát.
Aby ste sa uistili, že presun je správny, musíte: kliknúť na objekt Kamera v okne Hierarchia. V okne inšpektora uvidíte takýto objekt:

Ak máte na obrázku zvýraznený riadok s názvom vášho skriptu, urobili ste všetko správne.

Krok 4: Otvorme skript v editore. Ak to chcete urobiť, kliknite na svoj skript dvojitým kliknutím ľavým tlačidlom myši v okne projektu. Tým sa otvorí editor skriptov, v mojom prípade je to MonoDevelop. Po otvorení editora uvidíte pred sebou skript, ktorý bude úplne prázdny, no so základným obsahom:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
pomocou UnityEngine;
pomocou System.Collections;
verejná trieda Menu1: MonoBehaviour (
// Toto použite na inicializáciu
void Start () (
}
void Aktualizácia () (
}
}


Linka

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> public class [u] Menu: MonoBehaviour (

Výmenou za slovo Ponuka bude obsahovať názov vášho skriptu. Linky sa netreba dotýkať ani meniť. Aspoň pre tento tutoriál.

Krok 5: Upravme skript v ponuke, preto môžete odstrániť niektoré riadky, ktoré v tejto lekcii nebudete potrebovať:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
// Toto použite na inicializáciu - tento komentár nepotrebujeme

// Aktualizácia sa volá raz za snímku
void Aktualizácia () (
) - nepotrebujeme ani metódu Void

Krok 6: Náš skript je pripravený na vytvorenie herného menu.
Pred metódou neplatné Štart vytvorme premennú na číslovanie okien v menu hry.
Obsah riadku je:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> verejné int okno;


verejný int- nastavte číselnú hodnotu premennej
okno- názov premennej, ktorá bude použitá v skripte s číselnou hodnotou

Krok 6: Aby ponuka fungovala správne, musíme na začiatku skriptu zobraziť jeden obsah, a to v metóde neplatné Štart pridajte počiatočnú hodnotu premennej okno... Celá metóda bude vyzerať takto:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
void Start () (
okno = 1;
}

Metóda na začiatku vykonávania skriptu priradí premennej okna hodnotu 1

[b] Krok 7:
Začnime pracovať s GUI so zobrazením ponuky, na to vytvoríme nižšie metódu void Start, metódu v zobrazení GUI. Bude to vyzerať takto:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
void OnGUI () (
}

Táto metóda v programe Unity3D a vo vašej vytváranej aplikácii spôsobí zobrazenie grafiky.

Krok 8: Aby sa ponuka zobrazovala v strede obrazovky a nemusela počítať s umiestnením každého tlačidla, vytvoríme skupinu, ktorá zobrazí jej obsah v strede obrazovky:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
GUI.EndGroup ();

GUI.BeginGroup- vytvoriť skupinu
(nové Rect- nastavíme hodnotu, že budú uvádzané ďalšie údaje o umiestnení samotnej skupiny
(šírka obrazovky / 2 – 100,- nastavte polohu skupiny vzhľadom na šírku obrazovky
Výška obrazovky / 2 – 100,- nastavte polohu skupiny vzhľadom na výšku obrazovky
200 - nastavte šírku skupiny
200 - nastaviť výšku skupiny

Môžete si nastaviť vlastné hodnoty šírky a výšky, ale tak, aby bolo všetko úhľadne vycentrované Šírka obrazovky / 2 - 100, Výška obrazovky / 2 - 100 hodnota 100 je nahradená našou hodnotou. To znamená, že ak vaša skupina bude mať šírku a výšku 300, tak namiesto 100 musíte zadať polovicu šírky 300. Zadaná hodnota bude 150.

Krok 9: Vytvorte výstup ponuky, ak premenná okna = 1. Ak to chcete urobiť, medzi začiatkom a koncom skupiny vytvorenej v kroku 8, tj

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
GUI.BeginGroup (nový Rect (Screen.width / 2 - 100, Screen.height / 2 - 100, 200, 200));
Tu!!!
GUI.EndGroup ();


Napíšme vrátenú hodnotu, keď okno = 1:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
if (okno == 1)
{
if (GUI.Button (nový Rect (10,30,180,30), "Play"))
{
okno = 2;
}
if (GUI.Button (nové Rect (10,70,180,30), "Nastavenia"))
{
okno = 3;
}
if (GUI.Button (nový Rect (10,110,180,30), "About the Game"))
{
okno = 4;
}
if (GUI.Button (nový Rect (10,150,180,30), "Exit"))
{
okno = 5;
}
}

if (okno == 1)- ak sa okná rovná 1, potom vytvorte výstup
if (GUI.Button (nový Rect (10,30,180,30), "Play"))- vytvorte tlačidlo "Prehrať".
(okno = 2 ;)- ak stlačíte tlačidlo "Play", okno dostane hodnotu 2
Zvyšok tlačidla je rovnaký.

Krok 10: Vytvorte výstup, ak je premenná okna 2

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
if (okno == 2)
{

{
Application.LoadLevel (1);
}
{
Application.LoadLevel (2);
}
{
Application.LoadLevel (3);
}
{
okno = 1;
}
}

Zobrazíme tlačidlá, ktoré sú dostupné po kliknutí na tlačidlo „Prehrať“. Záver sa nelíši od predchádzajúcich tlačidiel, iba dešifrujem nové funkcie:
Debug.Log ("Úroveň 1 načítaná"); -
Application.LoadLevel (1);- voláme funkciu, ktorá načítava úroveň hry. 1 - možno zmeniť na úroveň, ktorú potrebujete. Číselnou hodnotu je možné získať stlačením kombinácie kláves Ctrl + Shift + B.

Krok 11: Vytvorte výstup, ak je okno 3:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
if (okno == 3)
{

{
}
{
}
{
}
if (GUI.Button (nový Rect (10,160,180,30), "Späť"))
{
okno = 1;
}
}


V tomto kroku nie sú použité nové funkcie, takže iba dopĺňame. V ďalších lekciách sa bude písať o vytváraní funkcionality na prispôsobenie hry.

Krok 12: Zobrazte obsah, ak je hodnota okna 4

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
if (okno == 4)
{

{
okno = 1;
}
}

Krok 13: Zobrazte obsah, ak má premenná okna hodnotu 5 a je stlačené tlačidlo "Exit".

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
if (okno == 5)
{

{
Application.Quit ();
}
{
okno = 1;
}
}


V tomto výstupe z nových funkcií iba ona:
Application.Quit ();- táto funkcia vypne aplikáciu po stlačení tlačidla "Áno".
P.S. Funkcia nefunguje v editore Unity3D, funguje iba v zostavenom projekte.

Skript je pripravený, ale ak ste urobili všetko v krokoch, potom budete mať menu, ktoré bolo zobrazené na obrázku na začiatku.

Ak (okno == 2)
{
GUI.Label (nový Rect (50, 10, 180, 30), "Vybrať úroveň");
if (GUI.Button (nové Rect (10,40,180,30), "Level 1"))
{
Debug.Log ("Úroveň 1 načítaná");
Application.LoadLevel (1);
}
if (GUI.Button (nový Rect (10,80,180,30), "Level 2"))
{
Debug.Log ("Úroveň 2 načítaná");
Application.LoadLevel (2);
}
if (GUI.Button (nový Rect (10,120,180,30), "Level 3"))
{
Debug.Log ("Úroveň 3 načítaná");
Application.LoadLevel (3);
}
if (GUI.Button (nový Rect (10,160,180,30), "Späť"))
{
okno = 1;
}
}

Ak (okno == 3)
{
GUI.Label (nový Rect (50, 10, 180, 30), "Nastavenia hry");
if (GUI.Button (nový Rect (10,40,180,30), "Hra"))
{
}
if (GUI.Button (nový Rect (10,80,180,30), "Audio"))
{
}
if (GUI.Button (nový Rect (10,120,180,30), "Video"))
{
}
if (GUI.Button (nový Rect (10,160,180,30), "Späť"))
{
okno = 1;
}
}

Ak (okno == 4)
{
GUI.Label (nový Rect (50, 10, 180, 30), "O hre");
GUI.Label (nový Rect (10, 40, 180, 40), "Informácie o vývojárovi a o hre");
if (GUI.Button (nový Rect (10,90,180,30), "Späť"))
{
okno = 1;
}
}

Ak (okno == 5)
{
GUI.Label (nový Rect (50, 10, 180, 30), "Už odchádzate?");
if (GUI.Button (nové Rect (10,40,180,30), "Yes"))
{
Application.Quit ();
}
if (GUI.Button (nový Rect (10,80,180,30), "Nie"))
{
okno = 1;
}
}
GUI.EndGroup ();
}
}


Momentálne je to prvá lekcia, v budúcnosti pribudne pár ďalších, ktorí vás naučia, ako si spraviť plne funkčné menu

  • Návod

Ako vytvoriť menu v hre v Unity

Unity umožňuje vynechať ponuku nastavení, pretože pred spustením hry je zabudovaný dialóg pre nastavenie kvality a rozlíšenia. Ak však chcete urobiť svoju hru jedinečnou a ukázať, čoho ste ako dizajnér schopní, potom je tento článok určený práve vám. Po dokončení tohto návodu si budete môcť vytvoriť vlastné menu s takouto funkcionalitou – úpravou hlasitosti, rozlíšenia, kvality obrazu, prepínaním režimov na celú obrazovku a v oknách. zaujímavé? Potom spustite Unity a choďte!
Vytvorenie a návrh hlavného menu a menu nastavení
1. Vytvorte dve scény: Menu a Hra
2. Otvorte File-> BuildSettings a pretiahnite vytvorené scény do Scenes in build.

Teraz môžeme začať vytvárať používateľské rozhranie. Otvorte scénu Menu a pridajte Panel. Okamžite sa pridá plátno a ako dieťa sa k nemu pridá Panel.


Poďme sa pozrieť na inšpektora Canvas. A to komponent Canvas.


Režim vykresľovania sa automaticky nastaví na Priestor na obrazovke – Prekrytie.

Trocha informácii:

Priestor na obrazovke – prekrytie:

Spôsob vykresľovania, pri ktorom je plátno priamo ukotvené na obrazovke. Ak zmeníte rozlíšenie alebo veľkosť obrazovky, tak aj plátno s týmto nastavením zmení svoju mierku na vhodnú. V tomto prípade sa používateľské rozhranie vykreslí nad ostatnými objektmi.

Dôležité je poradie, v ktorom sú objekty umiestnené v hierarchii. Priestor na obrazovke – prekryvné plátno musí byť úplne na vrchole hierarchie, inak môže zmiznúť zo zobrazenia.


Priestor na obrazovke – Kamera:

V takom prípade je plátno pripevnené k fotoaparátu. Pre takéto nastavenie je nevyhnutné špecifikovať fotoaparát, ktorý zodpovedá plátne. Rovnako ako v predchádzajúcom odseku, plátno bude meniť svoju mierku v závislosti od rozlíšenia a veľkosti obrazovky, ako aj od zorného poľa fotoaparátu.

Je tiež dôležité, aby bolo plátno s takýmito nastaveniami umiestnené vo vzťahu k iným objektom. V popredí budú objekty, ktoré sú bližšie ku kamere, bez ohľadu na to, či ide o používateľské rozhranie alebo iné GameObjects.


Svetový vesmír:

Plátno sa umiestňuje ako ktorýkoľvek iný objekt bez toho, aby bolo viazané na kameru alebo obrazovku, dá sa orientovať ako chcete, veľkosť plátna sa nastavuje pomocou RectTransform, ale to, ako bude vidieť počas hry, bude závisieť od polohy kamery .
V tejto úlohe použijeme Screen Space – Overlay.
Prispôsobme si farbu panelu. Môžete tiež pridať obrázok na pozadie. Aby ste to dosiahli, musíte venovať pozornosť komponentu Obrázok na paneli Inšpektor.


Ako vidíte, obrázok sa pridá do poľa Zdrojový obrázok. Môžete jednoducho pretiahnuť obrázok zo súborov projektu alebo kliknúť na krúžok napravo od poľa.

Farba sa vyberá v poli Farba alebo pomocou nástroja kvapkadlo.
Je dôležité vedieť, že kvapkadlo vám umožňuje vybrať si farbu mimo Unity.
Potom, čo sme si vybrali farbu alebo obrázok, musíme umiestniť tlačidlá, ktoré budú ovládať všetko, ako aj text. Aby sme si to uľahčili, pre Panel pridáme ďalší komponent s názvom Vertical Layout Group. A poďme to hneď založiť.

Všetky tlačidlá a text musíme umiestniť do stredu obrazovky. Ak to chcete urobiť, nájdite položku Child Alignment v komponente Vertical Layout Group a vyberte Stredný stred. Teraz budú všetky naše prvky, či už sú to tlačidlá alebo text, vycentrované bez ohľadu na rozlíšenie obrazovky.

Zrušíme tiež začiarknutie políčka ChildForceExpand. Malo by to vyzerať takto:


Tento komponent je možné prispôsobiť podľa toho, aký druh chcete získať.

Naša ponuka by mala obsahovať nasledujúce tlačidlá:

1. Spustite hru
2. Nastavenia
3. Výstup

Teraz pridajte Text ako dieťa nášho panela. Môžete vidieť, ako sa pripevňuje v strede. Niekedy to vyžaduje, aby sa vytvorený prvok v okne scény jednoducho presunul na panel a potom sa zarovná. Nastavte text požadovaným spôsobom pomocou komponentu Text (Script) v inšpektorovi.


Potom pridajte tlačidlo. Tlačidlo je pridané pod text.

Poďme sa pozrieť na komponent Button nášho tlačidla. Zaujíma nás Transition – ako bude tlačidlo reagovať na akcie myši. Unity implementuje niekoľko spôsobov. Poďme sa zatiaľ pozrieť na celkom jednoduchý Color Tint. To znamená, že tlačidlo za určitých podmienok zmení svoju farbu. Rozhranie pre prispôsobenie je celkom užívateľsky prívetivé. Prispôsobíme tak, ako sa vám páči.


Objekt Button má tiež podriadený objekt Text – toto je text, ktorý sa zobrazí na tlačidle. Do textu napíšte Hrať.

Zdá sa, že text a tlačidlá sú príliš blízko seba.

Ak to chcete opraviť pre náš text ponuky, pridajte ďalší komponent s názvom Layout Element. A začiarknite políčko Ignorovať rozloženie.


Potom nastavte kotvu na Stredný stred.


Potom pridáme ďalšie tri tlačidlá a nazveme ich Nastavenia, Kredity, Koniec.
Môžete zmeniť veľkosť tlačidiel. V tomto bode menu vyzerá takto:

Prechody medzi hlavným menu a nastaveniami
Ak chcete prejsť do ponuky možností, nemusíte vytvárať novú scénu.
Najprv vytvoríme prázdny GameObject (Create Empty) ako dieťa nášho plátna. Nazvime to Hlavné menu. Potom urobíme náš panel so všetkými nástrojmi potomkami tohto objektu. Malo by to vyzerať takto:


Vyberte náš objekt MainMenu a duplikujte ho. Pri vybranom prvku stlačte kombináciu klávesov Ctrl + D. Budeme mať nový objekt.


Premenujte nový objekt na Nastavenia. Pre uľahčenie správy deaktivujeme hlavnú ponuku.


Ďalej na paneli Nastavenia prepíšte text na Nastavenia a vymažte všetky tlačidlá.
V nastaveniach urobíme nasledovné – Celá obrazovka, nastavenie hlasitosti, kvalita obrazu, rozlíšenie obrazovky.

Ovládanie na celú obrazovku bude ovládané prvkom Toggle.
Pre hlasitosť - Posuvník.
Pre kvalitu obrazu a rozlíšenie – rozbaľovacia ponuka.

Medzi každý prvok umiestnite text, ktorý označuje názov každého nastavenia. Mali by sme pridať aj tlačidlo, ktoré nás vráti späť do hlavného menu.

Rozstup môžete upraviť v skupine Vertikálne rozloženie tak, aby medzi prvkami bol malý priestor. Pridajme na panel obrázok a získame nasledujúci výsledok:

Programovanie tlačidiel
Prejdime k písaniu skriptu menu.

Potrebujeme, že stlačením tlačidla Play spustíme ďalšiu scénu s našou hrou a stlačením tlačidla Exit sa hra zatvorí.

To si napíšeme do nášho scenára.

Pre MainMenu pridajte nový komponent MenuControls.cs a otvorte ho.

Prvá vec, ktorú musíte urobiť, je odstrániť existujúce metódy Štart () a Aktualizovať () - tu ich nepotrebujeme.

Používanie UnityEngine.SceneManagement;
Potom si napíšeme vlastnú metódu stlačenia tlačidla Play. Metóda musí byť verejná – musíme ju vidieť mimo nášho skriptu.

SceneManager je zodpovedný za načítanie scény a má metódu LoadScene. Existuje niekoľko preťažení metód. Môžete preniesť názov scény, ktorú chcete načítať. V našom prípade ide o scénu „Hra“.

Vo výsledku bude funkcia vyzerať takto.

Verejné neplatné PlayPressed () (SceneManager.LoadScene ("Hra"));)
Vytvorili sme tiež spôsob ukončenia hry:

Public void ExitPressed () (Application.Quit ();)
V Unity však výsledok tejto metódy neuvidíme, pretože funguje iba v zostave. Ak chcete skontrolovať, či všetko funguje správne, pridajte riadok do metódy

Debug.Log ("Stlačený koniec!");
Teraz musíte k týmto metódam pripojiť udalosti tlačidiel. Vyberte tlačidlo Prehrať a v inšpektorovi nájdite nasledovné:


Toto je udalosť tlačidla, ktorá po kliknutí vyvolá metódy prihlásené na odber udalosti. Pridajte metódu kliknutím na +.

Presuňte objekt obsahujúci požadovaný skript do okna, ktoré sa zobrazí. V našom prípade ide o Hlavné menu.

Potom musíte vybrať skript MenuControls a nájsť metódu PlayPressed ().


To isté urobíme pre tlačidlo Exit. Až teraz vyberieme metódu ExitPressed ().
Pre tlačidlo Nastavenia nemusíme písať žiadny kód, pretože niektoré funkcie sú už zabudované.

Pointa je, že aktivujeme GameObject. V tomto bode by ste mali mať aktívnu hlavnú ponuku a nastavenia by nemali byť viditeľné. Tiež vidíme, že keď aktivujeme Nastavenia, úplne sa prekrýva s Menu. Podstatou je, že úlohu zohráva poradie podriadených objektov plátna – v akom poradí sa nachádzajú v hierarchii v poradí, v akom budú nakreslené. Keďže sa Nastavenia nachádzajú nad hlavnou ponukou, prekrývajú ponuku.
To je to, čo budeme používať.

Vyberte tlačidlo Nastavenia a presuňte náš objekt Nastavenia na OnClick (). Vo funkciách vyberte GameObject -> SetActive (); a začiarknite. Páči sa ti to:


No a pre tlačidlo Späť, ktoré je v ponuke možností, môžete rovnakým spôsobom pripojiť udalosť SetActive pre objekt Settings, ale tentoraz musíme náš objekt deaktivovať, takže políčko jednoducho nezaškrtneme.

To je všetko, dokončili sme tvorbu menu a v ďalšej časti budeme pokračovať a prinútime hru reagovať na zmeny v nastaveniach.

nastavenie
Nastavenia celej obrazovky

Prvá vec, ktorú si predpíšeme, je prepínanie medzi režimom celej obrazovky a oknami.
Musíme zrušiť začiarknutie políčka Je zapnuté nášho prvku Prepnúť.
Vytvorte skript pre objekt Nastavenia. Nazvime to Settings.cs.

Najprv musíme uložiť boolovu premennú, ktorá bude zobrazovať aktuálny stav – na celú obrazovku alebo nie. A potom, po zmene prepínača, sa táto premenná prepne na opačnú hodnotu.

Obrazovka má vlastnosť Screen.fullScreen typu bool. Tejto vlastnosti môžeme len priradiť hodnotu našej premennej isFullScreen.

Kód vyzerá takto:

Public void FullScreenToggle () (isFullScreen =! IsFullScreen; Screen.fullScreen = isFullScreen;)
Výsledok môžete vidieť iba v zostave. Poďme na to teraz. Upozorňujeme, že na to, aby bola zostava správna, musíte nechať aktívny iba objekt MainMenu a vypnúť Nastavenia. Ak sa tak stane, spustite zostavu cez File-> BuildSettings a stlačte tlačidlo Build.

Potom môžete skontrolovať fungovanie programu. Ak je všetko správne, kliknutím na začiarkavacie políčko sa režim okamžite zmení.

Zmení hlasitosť zvuku v hre
Na prácu s nastaveniami zvuku potrebujeme najskôr AudioMixer a tiež nejakú stopu, na ktorej skontrolujeme fungovanie našich nastavení.

Pridajme tieto dva prvky. Najprv pridajte AudioMixer. Kliknite pravým tlačidlom myši v okne Projekt -> Vytvoriť-> AudioMixer.

Hovoríme tomu GameSettings. Potom otvorte okno AudioMixer: Window-> Audio Mixer (Ctrl + 8).

Ak chcete ovládať parametre mixéra pomocou skriptu, musia byť pre tento skript viditeľné. Tento postup sa nazýva ExposeParameters. Ak to chcete urobiť, kliknite na Mixer a nájdite hlasitosť v inšpektorovi a kliknite pravým tlačidlom myši. Výber Vystaviť skriptu:


Teraz v okne Audio Mixer venujte pozornosť položke Exposed Parameters v ľavej hornej časti.
Teraz je tam parameter. Kliknite naň a pomenujte náš parameter masterVolume. Mali by ste si zapamätať názov, ktorý mu priradíme - budete ho musieť špecifikovať v kóde.

Prejdite na stránku Settings.cs a vytvorte pole AudioMixer, aby ste naň získali odkaz v kóde.

Public AudioMixer am;
potom vytvoríme metódu

Public void AudioVolume (float sliderValue) (am.SetFloat ("masterVolume", sliderValue);)
Metóda SetFloat prevezme hodnoty nášho posúvača a priradí túto hodnotu parametru „masterVolume“.

Zostáva pripojiť našu metódu k udalostiam posúvača. Nájdite pole Pri zmene hodnoty v inšpektorovi posúvača a pripojte objekt rovnakým spôsobom. Teraz však nemusíme len vybrať metódu zo zoznamu, ale použiť pole Dynamic float. Ako vidíte, naša metóda už existuje a dostane premennú zo samotného posúvača. Musíte tiež pamätať na to, aby ste pretiahli AudioMixer do príslušného poľa v komponente Settings.cs.


Všimnite si, že priamo spájame hodnotu posúvača s hodnotami zvukového mixéra. V audio mixpulte sa hlasitosť mení z -80 na 20. Nám postačí zmena z -80 (bez zvuku) na 0 (normálny zvuk). V nastaveniach posúvača nastavte minimálnu hodnotu na -80, maximálnu na 0.
Teraz pridajme zvuky do našej hry, aby sme otestovali skript.
Pridajte komponent Audio Source na plátno.
Nakonfigurujme to nasledovne:


Audio Clip - zvuková stopa
Výstup - Majster nášho mixéra (detský objekt)
Slučka – zaškrtnite políčko – slučka skladby, aby sa hrala neustále.
Kvalita obrazu
Unity má vstavané nastavenia kvality obrazu. Upraviť-> Nastavenia projektu-> Kvalita. V inšpektorovi vidíme Nastavenia kvality. Môžu byť pridané a prispôsobené.

Zvláštnosťou práce s nastaveniami kvality je:
Každé nastavenie zodpovedá indexu, ktorý môžeme získať z rozbaľovacej ponuky. Všetko, čo je potrebné urobiť, je prepísať zodpovedajúce položky do potrebných indexov v našom prvku používateľského rozhrania. Otvorte ho a v inšpektorovi nájdite Dropdown (Script) a v ňom položku Options. Ďalej zadajte nastavenia v požadovanom poradí. Mám to takto:


Ďalej musíte napísať kód. Pokračujeme v pridávaní metód do nášho skriptu Settings.cs
Vytvoríme metódu, ktorá zaberie int – index vybranej položky.

Public void Quality (int q) (QualitySettings.SetQualityLevel (q);)
Uložíme skript a pripojíme metódu k udalosti v našej ponuke. Tentoraz je to udalosť Dropdown - On Value Changed.

Keďže naša metóda dostane hodnotu zo samotného prvku používateľského rozhrania, vyberieme názov metódy zo skupiny Dymanic int. analogicky s predchádzajúcim odsekom.

Rozlíšenie obrazovky
Obrazovky sú pre každého iné a nie je možné vopred odhadnúť, aké povolenia na nich budú podporované. Ak chcete upraviť rozlíšenie obrazovky, musíte najprv získať všetky možné rozlíšenia a potom vyplniť zoznam rozlíšení týmito hodnotami.

Prvá vec, ktorú potrebujeme, je pole typu Rozlíšenie, kde budeme ukladať hodnoty rozlíšenia obrazovky.

Pre rozbaľovacie položky je však typ reťazec. Preto vytvoríme zoznam<>do ktorého uložíme hodnoty možných rozlíšení. Ak chcete pracovať so zoznamami, musíte sa pripojiť:

Používanie System.Collections.Generic;
Potrebujeme tiež odkaz na príslušnú rozbaľovaciu ponuku. Ak chcete pracovať s prvkami používateľského rozhrania, mali by ste tiež napísať:

Používanie UnityEngine.UI;
V skripte dostaneme nasledujúce polia:

Rozlíšenie rsl; Zoznam uznesenia; verejný rozbaľovací zoznam;
Vykonávame inicializáciu a vyplnenie metódy Prebudiť. Táto metóda sa volá pri spustení objektu, a preto sa vykoná pred všetkými ostatnými metódami.

Získame hodnoty a pridáme každú z nich do zoznamu vo formáte šírka * výška. Potom vymažeme rozbaľovací zoznam a vyplníme ho novými možnosťami.

Public void Prebuďte sa () (rozlíšenia = nový zoznam (); rsl = Screen.resolutions; foreach (var i v rsl) (rozlíšenia. Pridať (i.šírka + "x" + i.výška);) rozbaľovacia ponuka.Vymazať možnosti (); dropdown.AddOptions (rozlíšenia); )
Teraz musíme vytvoriť metódu, ktorá zmení rozlíšenie obrazovky. Rovnako ako v predchádzajúcich odsekoch preberieme hodnotu z prvku UI. Vytvorte funkciu, ktorá preberá int

Public void Resolution (int r) (Screen.SetResolution (rsl [r] .width, rsl [r] .height, isFullScreen);)
V SetResolution musíte zadať parametre – šírku, výšku a booleovskú premennú zodpovednú za celú obrazovku. Jeden už máme – toto je FullScreen. Odovzdáme ho funkcii.
Ďalej nezabudnite pripojiť našu metódu rozlíšenia zo skupiny Dynamic Int k zodpovedajúcej udalosti a tiež pridať odkaz na požadovanú rozbaľovaciu ponuku.


Pripravený. Teraz môžete použiť túto ponuku namiesto nudného predvoleného spúšťača. Aby však bola užitočná, musíte jej spustenie zakázať.

Edit-> ProjectSettings-> Display Resolution Dialog-Disabled


Teraz máte možnosť vytvoriť si vlastné menu a použiť v nich akékoľvek dizajnové riešenia, vďaka ktorým bude hra jedinečná a nezabudnuteľná.

Štítky: android Pridať štítky

Ako pridať nepriateľov, ovládač nepriateľov.
5. Najjednoduchšia hra (3): Systém častíc, Pridávanie zvukov, Vytváranie textu na obrazovke, Publikovanie.
6. Trojrozmerná plošinovka. (v procese)

2. Rozhranie programu

Začnime jednoduchým – vzhľadom programu. Nemôžete len tak niečo zobrať a vytvoriť v programe, ak to vidíte prvýkrát. Najprv si treba všetko prezrieť, zvyknúť si na umiestnenie okien, vyhodnotiť množstvo všemožných menu a tlačidiel. Môžete si na to vyhradiť trochu času a skúsiť niečo v programe urobiť sami, alebo sa môžete pod naším vedením zoznámiť s celým rozhraním.

Je to potrebné, aby sa v programe objavil pocit pohodlia, aby ste už intuitívne poznali umiestnenie všetkých nástrojov a už sa na to nikdy nezamerali. (Najbližší príklad: v aute si pri prvej jazde treba dávať väčší pozor, nie aké značky na ceste, ale ako držíte volant a akou silou stláčate pedále. vykonávajú sa automaticky, čisto intuitívne).

(Ak vás táto téma nezaujíma, všimnete si, že sa pri čítaní rýchlo unavíte, môžete preskočiť celú sekciu „Rozhranie“ a prejsť rovno do sekcie „ 3. Vytvorenie najjednoduchšej hry". Veľa ľudí sa ťažko učí teóriu, oveľa efektívnejšie je učiť sa hneď v praxi. V kapitole 3 okamžite uvidíte výsledok svojej práce a učenie začne prinášať pozitívne emócie. Aby ste však všetkému porozumeli, budete sa musieť pravidelne vracať k druhej časti).

No pokračujeme.

Všeobecná forma

Pracovné okno Unity je rozdelené na 6 vzájomne prepojených oblastí. (V predvolenom nastavení Unity zapína zobrazenie „Predvolené“ alebo „Na výšku“. Ak máte iné zobrazenie pracovného okna, môžete ho prepnúť v ponuke „Rozloženie“ v pravom hornom rohu okna).



Zoznam všetkých pracovných priestorov v okne Unity:


1. Hlavné menu
(Hlavné menu)
Riadok textu navrchu, kde je znak všetky tímy dostupné v programe. Mnohé príkazy sú duplikované tlačidlami a ponukami v pracovných priestoroch, takže hlavné menu sa nemusí používať.
2. Zobrazenie projektu
(Prehľad projektu)
Zobrazuje sa zoznam všetky použité súbory v hre: súbor scény, súbor kódu, grafické a zvukové súbory.
3. Hierarchia
(Hierarchia)
Zoznam, kde sú uvedené všetky predmety pridal na scénu. Tu môžete s objektmi pracovať, kopírovať ich, premenovávať, mazať.
4. Scéna
(scéna)
Oblasť, kde sa zobrazuje herný svet alebo herná scéna. Tu môžeme pridávať nové objekty, presúvať ich myšou, meniť pohľad.
5. Hra
(Hra)
Oblasť ukážky, kde môžete vidieť ako bude scéna vyzerať v hre... Tu môžete konfigurovať rôzne nastavenia obrazovky a režimu videa.
6. Inšpektor
(inšpektor)
Zoznam pozostávajúci z niekoľkých rôznych typov sekcií. Ukazuje všetko vlastnosti vybraného objektu: veľkosti, modely, textúry, skripty.

Viac podrobností o každej oblasti bude popísané nižšie.

2.1. Hlavné menu


Hlavná ponuka Unity3D sa štandardne nachádza v ľavom hornom rohu okna. Nachádzajú sa tu bežné príkazy ako „uložiť“, „načítať“, ale sú tu aj riadky, ktoré sú pre tento program jedinečné.


Hlavná ponuka obsahuje vo všeobecnosti všetky príkazy programu av hlavných oblastiach okna sú iba duplikované. Preto, aby ste zvážili všetky významy a preklady príkazov, musíte dôkladne poznať Unity, preto všetky príkazy hlavného menu podrobne zvážime o niečo neskôr na samostatnej stránke.

2.2. Zobrazenie projektu


Každý projekt obsahuje priečinok „Aktíva“. Obsah tohto priečinka sa zobrazuje v oblasti „Zobrazenie projektu“. Sú to herné zdroje: súbory skriptov, 3D modely, textúry, zvukové súbory, prefabrikáty (objekty, ktoré možno klonovať).


(Presun súborov je možné vykonať v priečinku a prostredníctvom štandardného Prieskumníka Windows tak, že naň kliknete pravým tlačidlom myši a vyberiete možnosť „Zobraziť v programe Exlorer“. Keď však presuniete prostriedky v Prieskumníkovi Windows, všetky prepojenia medzi objektmi sa stratia. Je lepšie vždy presúvajte súbory v rámci projektu iba v " Project View ").


Existujú dva spôsoby, ako pridať nový zdroj do projektu:

Presuňte súbor z Prieskumníka do zobrazenia projektu.

Príkaz Aktíva> Importovať nové aktíva.


Herné projekty pozostávajú z jedného alebo viacerých súborov scén. Každá samostatná scéna je samostatnou úrovňou hry. Scény sú tiež uložené v priečinku Assets a zobrazené v zobrazení projektu.


Niektoré herné aktíva nie sú súbory a sú vytvorené priamo v Unity. Ak chcete vytvoriť zdroj, použite rozbaľovaciu ponuku „Vytvoriť“ v časti „Zobrazenie projektu“ alebo (RMB)> „Vytvoriť“.

Ponuka „Vytvoriť“ vám umožňuje pridávať do projektu skripty, prefabrikáty, priečinky a ďalšie. Akýkoľvek zdroj alebo priečinok je možné premenovať stlačením „F2“ alebo dvoma kliknutiami na názov. Ak podržíte stlačené tlačidlo "Alt", pri rozbalení adresára sa rozbalia aj všetky podadresáre.

2.3. Hierarchia


Hierarchia obsahuje všetky objekty (GameObjects) otvorenej scény. Objekty pridané alebo odstránené zo scény sa zobrazia alebo naopak prestanú byť zobrazené v Hierarchii.


Dedičstvo (Rodičovstvo). V hierarchii Unity možno objekty dediť. Akýkoľvek predmet môže byť potomkom iného. Podradený objekt sa bude pohybovať a otáčať s rodičom. Ak chcete vytvoriť podriadený odkaz, jednoducho presuňte objekt na „rodič“ v hierarchii.

2.4. Pohľad na scénu


Herná scéna slúži na usporiadanie objektov na úrovni (prostredie, postavy, kamery, časticové systémy atď.). Scéna môže byť úroveň hry, hlavné menu, úvodná obrazovka.


V 2D režime je ovládanie intuitívne. V režime 3D existuje veľa trikov na pohyb po scéne:

* Upnuté RMB aktivuje režim voľného letu.

* Môžete sa pohybovať pomocou kláves WASD spôsobom hrania v žánri FPS.

* Vyberte objekt v zozname hierarchie a stlačte "F". Pohľad scény bude vycentrovaný a jeho mierka bude prispôsobená vybranému objektu.

* Keď držíte Alt, LMB bude otáčať kameru okolo aktuálneho otočného bodu.

* Keď držíte Alt, MMB bude pohybovať fotoaparátom.

* Keď držíte Alt, RMB zmení mierku zobrazenia scény.

* Alternatívny režim pohybu - kláves Q.

2.5. Stránka na zobrazenie hry


Game View - náhľad hry (render z hernej kamery).

V predvolenom rozložení okna nie je žiadne zobrazenie hry, ak ho chcete povoliť, vyberte kartu Hra nad hernou scénou. V iných režimoch okna má „Game View“ svoje vlastné miesto.


Tri tlačidlá v hornej časti okna Unity sú zodpovedné za ovládanie ukážky hry: „Play“, „Pause“ a „Step“. (Všetky zmeny vykonané počas ukážky sa pri opustení ukážky zahodia. Výnimkou sú zmeny v paneloch).


Ovládací panel zobrazenia hry

Prvá rozbaľovacia ponuka v zobrazení hry je rozbaľovacia ponuka Aspect. Na niektorých displejoch sa tento pomer líši od štandardného 4: 3 (napríklad širokouhlé monitory - 16:10).

Tlačidlo Gizmos umožňuje zobrazenie kontajnerov Gizmo v Game View.

Posledným tlačidlom je „Štatistika“. Zobrazuje štatistiku vykresľovania užitočnú na optimalizáciu.

2.6. inšpektor


GameObject je akýkoľvek objekt v hre. Malo by byť zrejmé, že samotný objekt nerobí nič. Než sa stane postavou, prostredím alebo vizuálnym efektom, potrebuje špeciálne vlastnosti.

Predmety sú len kontajnery. Môžu obsahovať rôzne prvky, ktorých kombinácie premenia predmet na postavu, dekoráciu, špeciálny efekt. Tieto prvky sa nazývajú komponenty. K objektu sú priradené rôzne kombinácie komponentov v závislosti od toho, čo chcete vytvoriť.


Zoznam objektov sa nachádza v oblasti „Hierarchia“. Ak vyberieme akýkoľvek objekt v zozname hierarchie, potom oblasť "Inšpektor" zobrazí všetky vlastnosti tohto konkrétneho objektu. Tu môžete upraviť všetky tieto vlastnosti alebo pridať nové.


Objekt môže obsahovať nasledujúce typy komponentov: umiestnenie v priestore (Transform), siete (meshes), skripty (scripts), zvuky, IS (Lights) a ďalšie prvky.

Stavový riadok

Stavový riadok sa nachádza v spodnej časti okna editora. Zobrazuje chyby kompilácie a protokoly ladenia. Ak máte s hrou problémy, oplatí sa pozrieť na stavový riadok. Dvojitým kliknutím naň sa zobrazí okno konzoly, ktoré zobrazuje všetky chyby.

2.7. Nastavenie pracovného okna

Rozloženie (Layout) sektorov môžete prispôsobiť ich pretiahnutím za karty. Ak pretiahnete záložku do oblasti záložiek existujúceho okna, pridá sa k záložkám, ktoré sa tam nachádzajú. Môžete tiež ukotviť sektor k okraju obrazovky alebo k okraju iného sektora.

Sektor možno ukotviť na jednu stranu existujúceho okna.

Záložky je možné odpojiť od hlavného okna editora a zahrnúť ich do plávajúceho okna editora. Plávajúce okno môže obsahovať sektory a karty rovnakým spôsobom ako hlavné okno.

Plávajúce okno editora je podobné hlavnému oknu, ale nemá panel s nástrojmi.

Po zadaní umiestnenia sektorov je možné ich uložiť a načítať v správnom čase prostredníctvom rozbaľovacej ponuky Rozloženie (Uložiť a načítať).

Plne prispôsobené rozloženie sektorov.

Kedykoľvek môžete kliknúť pravým tlačidlom myši na záložku a vyvolať ponuku s ďalšími možnosťami, ako je maximalizácia sektora alebo pridanie nových záložiek.

Úspech „Čestný čitateľ stránky“
Páčil sa vám článok? Vďaka vďačnosti sa jej môžete páčiť prostredníctvom akejkoľvek sociálnej siete. Pre vás je to jedno kliknutie, pre nás ďalší krok v rebríčku herných stránok.
Úspech „Čestná sponzorská stránka“
Pre tých, ktorí sú obzvlášť štedrí, je tu možnosť previesť peniaze na účet stránky. V tomto prípade môžete ovplyvniť výber novej témy pre článok alebo pasáž.
money.yandex.ru/to/410011922382680
  • Vývoj pre Android
    • Návod

    Ako vytvoriť menu v hre v Unity

    Unity umožňuje vynechať ponuku nastavení, pretože pred spustením hry je zabudovaný dialóg pre nastavenie kvality a rozlíšenia. Ak však chcete urobiť svoju hru jedinečnou a ukázať, čoho ste ako dizajnér schopní, potom je tento článok určený práve vám. Po dokončení tohto návodu si budete môcť vytvoriť vlastné menu s takouto funkcionalitou – úpravou hlasitosti, rozlíšenia, kvality obrazu, prepínaním režimov na celú obrazovku a v oknách. zaujímavé? Potom spustite Unity a choďte!
    Vytvorenie a návrh hlavného menu a menu nastavení
    1. Vytvorte dve scény: Menu a Hra
    2. Otvorte File-> BuildSettings a pretiahnite vytvorené scény do Scenes in build.

    Teraz môžeme začať vytvárať používateľské rozhranie. Otvorte scénu Menu a pridajte Panel. Okamžite sa pridá plátno a ako dieťa sa k nemu pridá Panel.


    Poďme sa pozrieť na inšpektora Canvas. A to komponent Canvas.


    Režim vykresľovania sa automaticky nastaví na Priestor na obrazovke – Prekrytie.

    Trocha informácii:

    Priestor na obrazovke – prekrytie:

    Spôsob vykresľovania, pri ktorom je plátno priamo ukotvené na obrazovke. Ak zmeníte rozlíšenie alebo veľkosť obrazovky, tak aj plátno s týmto nastavením zmení svoju mierku na vhodnú. V tomto prípade sa používateľské rozhranie vykreslí nad ostatnými objektmi.

    Dôležité je poradie, v ktorom sú objekty umiestnené v hierarchii. Priestor na obrazovke – prekryvné plátno musí byť úplne na vrchole hierarchie, inak môže zmiznúť zo zobrazenia.


    Priestor na obrazovke – Kamera:

    V takom prípade je plátno pripevnené k fotoaparátu. Pre takéto nastavenie je nevyhnutné špecifikovať fotoaparát, ktorý zodpovedá plátne. Rovnako ako v predchádzajúcom odseku, plátno bude meniť svoju mierku v závislosti od rozlíšenia a veľkosti obrazovky, ako aj od zorného poľa fotoaparátu.

    Je tiež dôležité, aby bolo plátno s takýmito nastaveniami umiestnené vo vzťahu k iným objektom. V popredí budú objekty, ktoré sú bližšie ku kamere, bez ohľadu na to, či ide o používateľské rozhranie alebo iné GameObjects.


    Svetový vesmír:

    Plátno sa umiestňuje ako ktorýkoľvek iný objekt bez toho, aby bolo viazané na kameru alebo obrazovku, dá sa orientovať ako chcete, veľkosť plátna sa nastavuje pomocou RectTransform, ale to, ako bude vidieť počas hry, bude závisieť od polohy kamery .
    V tejto úlohe použijeme Screen Space – Overlay.
    Prispôsobme si farbu panelu. Môžete tiež pridať obrázok na pozadie. Aby ste to dosiahli, musíte venovať pozornosť komponentu Obrázok na paneli Inšpektor.


    Ako vidíte, obrázok sa pridá do poľa Zdrojový obrázok. Môžete jednoducho pretiahnuť obrázok zo súborov projektu alebo kliknúť na krúžok napravo od poľa.

    Farba sa vyberá v poli Farba alebo pomocou nástroja kvapkadlo.
    Je dôležité vedieť, že kvapkadlo vám umožňuje vybrať si farbu mimo Unity.
    Potom, čo sme si vybrali farbu alebo obrázok, musíme umiestniť tlačidlá, ktoré budú ovládať všetko, ako aj text. Aby sme si to uľahčili, pre Panel pridáme ďalší komponent s názvom Vertical Layout Group. A poďme to hneď založiť.

    Všetky tlačidlá a text musíme umiestniť do stredu obrazovky. Ak to chcete urobiť, nájdite položku Child Alignment v komponente Vertical Layout Group a vyberte Stredný stred. Teraz budú všetky naše prvky, či už sú to tlačidlá alebo text, vycentrované bez ohľadu na rozlíšenie obrazovky.

    Zrušíme tiež začiarknutie políčka ChildForceExpand. Malo by to vyzerať takto:


    Tento komponent je možné prispôsobiť podľa toho, aký druh chcete získať.

    Naša ponuka by mala obsahovať nasledujúce tlačidlá:

    1. Spustite hru
    2. Nastavenia
    3. Výstup

    Teraz pridajte Text ako dieťa nášho panela. Môžete vidieť, ako sa pripevňuje v strede. Niekedy to vyžaduje, aby sa vytvorený prvok v okne scény jednoducho presunul na panel a potom sa zarovná. Nastavte text požadovaným spôsobom pomocou komponentu Text (Script) v inšpektorovi.


    Potom pridajte tlačidlo. Tlačidlo je pridané pod text.

    Poďme sa pozrieť na komponent Button nášho tlačidla. Zaujíma nás Transition – ako bude tlačidlo reagovať na akcie myši. Unity implementuje niekoľko spôsobov. Poďme sa zatiaľ pozrieť na celkom jednoduchý Color Tint. To znamená, že tlačidlo za určitých podmienok zmení svoju farbu. Rozhranie pre prispôsobenie je celkom užívateľsky prívetivé. Prispôsobíme tak, ako sa vám páči.


    Objekt Button má tiež podriadený objekt Text – toto je text, ktorý sa zobrazí na tlačidle. Do textu napíšte Hrať.

    Zdá sa, že text a tlačidlá sú príliš blízko seba.

    Ak to chcete opraviť pre náš text ponuky, pridajte ďalší komponent s názvom Layout Element. A začiarknite políčko Ignorovať rozloženie.


    Potom nastavte kotvu na Stredný stred.


    Potom pridáme ďalšie tri tlačidlá a nazveme ich Nastavenia, Kredity, Koniec.
    Môžete zmeniť veľkosť tlačidiel. V tomto bode menu vyzerá takto:

    Prechody medzi hlavným menu a nastaveniami
    Ak chcete prejsť do ponuky možností, nemusíte vytvárať novú scénu.
    Najprv vytvoríme prázdny GameObject (Create Empty) ako dieťa nášho plátna. Nazvime to Hlavné menu. Potom urobíme náš panel so všetkými nástrojmi potomkami tohto objektu. Malo by to vyzerať takto:


    Vyberte náš objekt MainMenu a duplikujte ho. Pri vybranom prvku stlačte kombináciu klávesov Ctrl + D. Budeme mať nový objekt.


    Premenujte nový objekt na Nastavenia. Pre uľahčenie správy deaktivujeme hlavnú ponuku.


    Ďalej na paneli Nastavenia prepíšte text na Nastavenia a vymažte všetky tlačidlá.
    V nastaveniach urobíme nasledovné – Celá obrazovka, nastavenie hlasitosti, kvalita obrazu, rozlíšenie obrazovky.

    Ovládanie na celú obrazovku bude ovládané prvkom Toggle.
    Pre hlasitosť - Posuvník.
    Pre kvalitu obrazu a rozlíšenie – rozbaľovacia ponuka.

    Medzi každý prvok umiestnite text, ktorý označuje názov každého nastavenia. Mali by sme pridať aj tlačidlo, ktoré nás vráti späť do hlavného menu.

    Rozstup môžete upraviť v skupine Vertikálne rozloženie tak, aby medzi prvkami bol malý priestor. Pridajme na panel obrázok a získame nasledujúci výsledok:

    Programovanie tlačidiel
    Prejdime k písaniu skriptu menu.

    Potrebujeme, že stlačením tlačidla Play spustíme ďalšiu scénu s našou hrou a stlačením tlačidla Exit sa hra zatvorí.

    To si napíšeme do nášho scenára.

    Pre MainMenu pridajte nový komponent MenuControls.cs a otvorte ho.

    Prvá vec, ktorú musíte urobiť, je odstrániť existujúce metódy Štart () a Aktualizovať () - tu ich nepotrebujeme.

    Používanie UnityEngine.SceneManagement;
    Potom si napíšeme vlastnú metódu stlačenia tlačidla Play. Metóda musí byť verejná – musíme ju vidieť mimo nášho skriptu.

    SceneManager je zodpovedný za načítanie scény a má metódu LoadScene. Existuje niekoľko preťažení metód. Môžete preniesť názov scény, ktorú chcete načítať. V našom prípade ide o scénu „Hra“.

    Vo výsledku bude funkcia vyzerať takto.

    Verejné neplatné PlayPressed () (SceneManager.LoadScene ("Hra"));)
    Vytvorili sme tiež spôsob ukončenia hry:

    Public void ExitPressed () (Application.Quit ();)
    V Unity však výsledok tejto metódy neuvidíme, pretože funguje iba v zostave. Ak chcete skontrolovať, či všetko funguje správne, pridajte riadok do metódy

    Debug.Log ("Stlačený koniec!");
    Teraz musíte k týmto metódam pripojiť udalosti tlačidiel. Vyberte tlačidlo Prehrať a v inšpektorovi nájdite nasledovné:


    Toto je udalosť tlačidla, ktorá po kliknutí vyvolá metódy prihlásené na odber udalosti. Pridajte metódu kliknutím na +.

    Presuňte objekt obsahujúci požadovaný skript do okna, ktoré sa zobrazí. V našom prípade ide o Hlavné menu.

    Potom musíte vybrať skript MenuControls a nájsť metódu PlayPressed ().


    To isté urobíme pre tlačidlo Exit. Až teraz vyberieme metódu ExitPressed ().
    Pre tlačidlo Nastavenia nemusíme písať žiadny kód, pretože niektoré funkcie sú už zabudované.

    Pointa je, že aktivujeme GameObject. V tomto bode by ste mali mať aktívnu hlavnú ponuku a nastavenia by nemali byť viditeľné. Tiež vidíme, že keď aktivujeme Nastavenia, úplne sa prekrýva s Menu. Podstatou je, že úlohu zohráva poradie podriadených objektov plátna – v akom poradí sa nachádzajú v hierarchii v poradí, v akom budú nakreslené. Keďže sa Nastavenia nachádzajú nad hlavnou ponukou, prekrývajú ponuku.
    To je to, čo budeme používať.

    Vyberte tlačidlo Nastavenia a presuňte náš objekt Nastavenia na OnClick (). Vo funkciách vyberte GameObject -> SetActive (); a začiarknite. Páči sa ti to:


    No a pre tlačidlo Späť, ktoré je v ponuke možností, môžete rovnakým spôsobom pripojiť udalosť SetActive pre objekt Settings, ale tentoraz musíme náš objekt deaktivovať, takže políčko jednoducho nezaškrtneme.

    To je všetko, dokončili sme tvorbu menu a v ďalšej časti budeme pokračovať a prinútime hru reagovať na zmeny v nastaveniach.

    nastavenie
    Nastavenia celej obrazovky

    Prvá vec, ktorú si predpíšeme, je prepínanie medzi režimom celej obrazovky a oknami.
    Musíme zrušiť začiarknutie políčka Je zapnuté nášho prvku Prepnúť.
    Vytvorte skript pre objekt Nastavenia. Nazvime to Settings.cs.

    Najprv musíme uložiť boolovu premennú, ktorá bude zobrazovať aktuálny stav – na celú obrazovku alebo nie. A potom, po zmene prepínača, sa táto premenná prepne na opačnú hodnotu.

    Obrazovka má vlastnosť Screen.fullScreen typu bool. Tejto vlastnosti môžeme len priradiť hodnotu našej premennej isFullScreen.

    Kód vyzerá takto:

    Public void FullScreenToggle () (isFullScreen =! IsFullScreen; Screen.fullScreen = isFullScreen;)
    Výsledok môžete vidieť iba v zostave. Poďme na to teraz. Upozorňujeme, že na to, aby bola zostava správna, musíte nechať aktívny iba objekt MainMenu a vypnúť Nastavenia. Ak sa tak stane, spustite zostavu cez File-> BuildSettings a stlačte tlačidlo Build.

    Potom môžete skontrolovať fungovanie programu. Ak je všetko správne, kliknutím na začiarkavacie políčko sa režim okamžite zmení.

    Zmení hlasitosť zvuku v hre
    Na prácu s nastaveniami zvuku potrebujeme najskôr AudioMixer a tiež nejakú stopu, na ktorej skontrolujeme fungovanie našich nastavení.

    Pridajme tieto dva prvky. Najprv pridajte AudioMixer. Kliknite pravým tlačidlom myši v okne Projekt -> Vytvoriť-> AudioMixer.

    Hovoríme tomu GameSettings. Potom otvorte okno AudioMixer: Window-> Audio Mixer (Ctrl + 8).

    Ak chcete ovládať parametre mixéra pomocou skriptu, musia byť pre tento skript viditeľné. Tento postup sa nazýva ExposeParameters. Ak to chcete urobiť, kliknite na Mixer a nájdite hlasitosť v inšpektorovi a kliknite pravým tlačidlom myši. Výber Vystaviť skriptu:


    Teraz v okne Audio Mixer venujte pozornosť položke Exposed Parameters v ľavej hornej časti.
    Teraz je tam parameter. Kliknite naň a pomenujte náš parameter masterVolume. Mali by ste si zapamätať názov, ktorý mu priradíme - budete ho musieť špecifikovať v kóde.

    Prejdite na stránku Settings.cs a vytvorte pole AudioMixer, aby ste naň získali odkaz v kóde.

    Public AudioMixer am;
    potom vytvoríme metódu

    Public void AudioVolume (float sliderValue) (am.SetFloat ("masterVolume", sliderValue);)
    Metóda SetFloat prevezme hodnoty nášho posúvača a priradí túto hodnotu parametru „masterVolume“.

    Zostáva pripojiť našu metódu k udalostiam posúvača. Nájdite pole Pri zmene hodnoty v inšpektorovi posúvača a pripojte objekt rovnakým spôsobom. Teraz však nemusíme len vybrať metódu zo zoznamu, ale použiť pole Dynamic float. Ako vidíte, naša metóda už existuje a dostane premennú zo samotného posúvača. Musíte tiež pamätať na to, aby ste pretiahli AudioMixer do príslušného poľa v komponente Settings.cs.


    Všimnite si, že priamo spájame hodnotu posúvača s hodnotami zvukového mixéra. V audio mixpulte sa hlasitosť mení z -80 na 20. Nám postačí zmena z -80 (bez zvuku) na 0 (normálny zvuk). V nastaveniach posúvača nastavte minimálnu hodnotu na -80, maximálnu na 0.
    Teraz pridajme zvuky do našej hry, aby sme otestovali skript.
    Pridajte komponent Audio Source na plátno.
    Nakonfigurujme to nasledovne:


    Audio Clip - zvuková stopa
    Výstup - Majster nášho mixéra (detský objekt)
    Slučka – zaškrtnite políčko – slučka skladby, aby sa hrala neustále.
    Kvalita obrazu
    Unity má vstavané nastavenia kvality obrazu. Upraviť-> Nastavenia projektu-> Kvalita. V inšpektorovi vidíme Nastavenia kvality. Môžu byť pridané a prispôsobené.

    Zvláštnosťou práce s nastaveniami kvality je:
    Každé nastavenie zodpovedá indexu, ktorý môžeme získať z rozbaľovacej ponuky. Všetko, čo je potrebné urobiť, je prepísať zodpovedajúce položky do potrebných indexov v našom prvku používateľského rozhrania. Otvorte ho a v inšpektorovi nájdite Dropdown (Script) a v ňom položku Options. Ďalej zadajte nastavenia v požadovanom poradí. Mám to takto:


    Ďalej musíte napísať kód. Pokračujeme v pridávaní metód do nášho skriptu Settings.cs
    Vytvoríme metódu, ktorá zaberie int – index vybranej položky.

    Public void Quality (int q) (QualitySettings.SetQualityLevel (q);)
    Uložíme skript a pripojíme metódu k udalosti v našej ponuke. Tentoraz je to udalosť Dropdown - On Value Changed.

    Keďže naša metóda dostane hodnotu zo samotného prvku používateľského rozhrania, vyberieme názov metódy zo skupiny Dymanic int. analogicky s predchádzajúcim odsekom.

    Rozlíšenie obrazovky
    Obrazovky sú pre každého iné a nie je možné vopred odhadnúť, aké povolenia na nich budú podporované. Ak chcete upraviť rozlíšenie obrazovky, musíte najprv získať všetky možné rozlíšenia a potom vyplniť zoznam rozlíšení týmito hodnotami.

    Prvá vec, ktorú potrebujeme, je pole typu Rozlíšenie, kde budeme ukladať hodnoty rozlíšenia obrazovky.

    Pre rozbaľovacie položky je však typ reťazec. Preto vytvoríme zoznam<>do ktorého uložíme hodnoty možných rozlíšení. Ak chcete pracovať so zoznamami, musíte sa pripojiť:

    Používanie System.Collections.Generic;
    Potrebujeme tiež odkaz na príslušnú rozbaľovaciu ponuku. Ak chcete pracovať s prvkami používateľského rozhrania, mali by ste tiež napísať:

    Používanie UnityEngine.UI;
    V skripte dostaneme nasledujúce polia:

    Rozlíšenie rsl; Zoznam uznesenia; verejný rozbaľovací zoznam;
    Vykonávame inicializáciu a vyplnenie metódy Prebudiť. Táto metóda sa volá pri spustení objektu, a preto sa vykoná pred všetkými ostatnými metódami.

    Získame hodnoty a pridáme každú z nich do zoznamu vo formáte šírka * výška. Potom vymažeme rozbaľovací zoznam a vyplníme ho novými možnosťami.

    Public void Prebuďte sa () (rozlíšenia = nový zoznam (); rsl = Screen.resolutions; foreach (var i v rsl) (rozlíšenia. Pridať (i.šírka + "x" + i.výška);) rozbaľovacia ponuka.Vymazať možnosti (); dropdown.AddOptions (rozlíšenia); )
    Teraz musíme vytvoriť metódu, ktorá zmení rozlíšenie obrazovky. Rovnako ako v predchádzajúcich odsekoch preberieme hodnotu z prvku UI. Vytvorte funkciu, ktorá preberá int

    Public void Resolution (int r) (Screen.SetResolution (rsl [r] .width, rsl [r] .height, isFullScreen);)
    V SetResolution musíte zadať parametre – šírku, výšku a booleovskú premennú zodpovednú za celú obrazovku. Jeden už máme – toto je FullScreen. Odovzdáme ho funkcii.
    Ďalej nezabudnite pripojiť našu metódu rozlíšenia zo skupiny Dynamic Int k zodpovedajúcej udalosti a tiež pridať odkaz na požadovanú rozbaľovaciu ponuku.


    Pripravený. Teraz môžete použiť túto ponuku namiesto nudného predvoleného spúšťača. Aby však bola užitočná, musíte jej spustenie zakázať.

    Edit-> ProjectSettings-> Display Resolution Dialog-Disabled


    Teraz máte možnosť vytvoriť si vlastné menu a použiť v nich akékoľvek dizajnové riešenia, vďaka ktorým bude hra jedinečná a nezabudnuteľná.
    Unity umožňuje vynechať ponuku nastavení, pretože pred spustením hry je zabudovaný dialóg pre nastavenie kvality a rozlíšenia. Ak však chcete urobiť svoju hru jedinečnou a ukázať, čoho ste ako dizajnér schopní, potom je tento článok určený práve vám. Po dokončení tohto návodu si budete môcť vytvoriť vlastné menu s takouto funkcionalitou – úpravou hlasitosti, rozlíšenia, kvality obrazu, prepínaním režimov na celú obrazovku a v oknách. zaujímavé? Potom spustite Unity a choďte!
    Vytvorenie a návrh hlavného menu a menu nastavení
    1. Vytvorte dve scény: Menu a Hra
    2. Otvorte File-> BuildSettings a pretiahnite vytvorené scény do Scenes in build.

    Teraz môžeme začať vytvárať používateľské rozhranie. Otvorte scénu Menu a pridajte Panel. Okamžite sa pridá plátno a ako dieťa sa k nemu pridá Panel.


    Poďme sa pozrieť na inšpektora Canvas. A to komponent Canvas.


    Režim vykresľovania sa automaticky nastaví na Priestor na obrazovke – Prekrytie.

    Trocha informácii:

    Priestor na obrazovke – prekrytie:

    Spôsob vykresľovania, pri ktorom je plátno priamo ukotvené na obrazovke. Ak zmeníte rozlíšenie alebo veľkosť obrazovky, tak aj plátno s týmto nastavením zmení svoju mierku na vhodnú. V tomto prípade sa používateľské rozhranie vykreslí nad ostatnými objektmi.

    Dôležité je poradie, v ktorom sú objekty umiestnené v hierarchii. Priestor na obrazovke – prekryvné plátno musí byť úplne na vrchole hierarchie, inak môže zmiznúť zo zobrazenia.


    Priestor na obrazovke – Kamera:

    V takom prípade je plátno pripevnené k fotoaparátu. Pre takéto nastavenie je nevyhnutné špecifikovať fotoaparát, ktorý zodpovedá plátne. Rovnako ako v predchádzajúcom odseku, plátno bude meniť svoju mierku v závislosti od rozlíšenia a veľkosti obrazovky, ako aj od zorného poľa fotoaparátu.

    Je tiež dôležité, aby bolo plátno s takýmito nastaveniami umiestnené vo vzťahu k iným objektom. V popredí budú objekty, ktoré sú bližšie ku kamere, bez ohľadu na to, či ide o používateľské rozhranie alebo iné GameObjects.


    Svetový vesmír:

    Plátno sa umiestňuje ako ktorýkoľvek iný objekt bez toho, aby bolo viazané na kameru alebo obrazovku, dá sa orientovať ako chcete, veľkosť plátna sa nastavuje pomocou RectTransform, ale to, ako bude vidieť počas hry, bude závisieť od polohy kamery .
    V tejto úlohe použijeme Screen Space – Overlay.
    Prispôsobme si farbu panelu. Môžete tiež pridať obrázok na pozadie. Aby ste to dosiahli, musíte venovať pozornosť komponentu Obrázok na paneli Inšpektor.


    Ako vidíte, obrázok sa pridá do poľa Zdrojový obrázok. Môžete jednoducho pretiahnuť obrázok zo súborov projektu alebo kliknúť na krúžok napravo od poľa.

    Farba sa vyberá v poli Farba alebo pomocou nástroja kvapkadlo.
    Je dôležité vedieť, že kvapkadlo vám umožňuje vybrať si farbu mimo Unity.
    Potom, čo sme si vybrali farbu alebo obrázok, musíme umiestniť tlačidlá, ktoré budú ovládať všetko, ako aj text. Aby sme si to uľahčili, pre Panel pridáme ďalší komponent s názvom Vertical Layout Group. A poďme to hneď založiť.

    Všetky tlačidlá a text musíme umiestniť do stredu obrazovky. Ak to chcete urobiť, nájdite položku Child Alignment v komponente Vertical Layout Group a vyberte Stredný stred. Teraz budú všetky naše prvky, či už sú to tlačidlá alebo text, vycentrované bez ohľadu na rozlíšenie obrazovky.

    Zrušíme tiež začiarknutie políčka ChildForceExpand. Malo by to vyzerať takto:


    Tento komponent je možné prispôsobiť podľa toho, aký druh chcete získať.

    Naša ponuka by mala obsahovať nasledujúce tlačidlá:

    1. Spustite hru
    2. Nastavenia
    3. Výstup

    Teraz pridajte Text ako dieťa nášho panela. Môžete vidieť, ako sa pripevňuje v strede. Niekedy to vyžaduje, aby sa vytvorený prvok v okne scény jednoducho presunul na panel a potom sa zarovná. Nastavte text požadovaným spôsobom pomocou komponentu Text (Script) v inšpektorovi.


    Potom pridajte tlačidlo. Tlačidlo je pridané pod text.

    Poďme sa pozrieť na komponent Button nášho tlačidla. Zaujíma nás Transition – ako bude tlačidlo reagovať na akcie myši. Unity implementuje niekoľko spôsobov. Poďme sa zatiaľ pozrieť na celkom jednoduchý Color Tint. To znamená, že tlačidlo za určitých podmienok zmení svoju farbu. Rozhranie pre prispôsobenie je celkom užívateľsky prívetivé. Prispôsobíme tak, ako sa vám páči.


    Objekt Button má tiež podriadený objekt Text – toto je text, ktorý sa zobrazí na tlačidle. Do textu napíšte Hrať.

    Zdá sa, že text a tlačidlá sú príliš blízko seba.

    Ak to chcete opraviť pre náš text ponuky, pridajte ďalší komponent s názvom Layout Element. A začiarknite políčko Ignorovať rozloženie.


    Potom nastavte kotvu na Stredný stred.


    Potom pridáme ďalšie tri tlačidlá a nazveme ich Nastavenia, Kredity, Koniec.
    Môžete zmeniť veľkosť tlačidiel. V tomto bode menu vyzerá takto:

    Prechody medzi hlavným menu a nastaveniami
    Ak chcete prejsť do ponuky možností, nemusíte vytvárať novú scénu.
    Najprv vytvoríme prázdny GameObject (Create Empty) ako dieťa nášho plátna. Nazvime to Hlavné menu. Potom urobíme náš panel so všetkými nástrojmi potomkami tohto objektu. Malo by to vyzerať takto:


    Vyberte náš objekt MainMenu a duplikujte ho. Pri vybranom prvku stlačte kombináciu klávesov Ctrl + D. Budeme mať nový objekt.


    Premenujte nový objekt na Nastavenia. Pre uľahčenie správy deaktivujeme hlavnú ponuku.


    Ďalej na paneli Nastavenia prepíšte text na Nastavenia a vymažte všetky tlačidlá.
    V nastaveniach urobíme nasledovné – Celá obrazovka, nastavenie hlasitosti, kvalita obrazu, rozlíšenie obrazovky.

    Ovládanie na celú obrazovku bude ovládané prvkom Toggle.
    Pre hlasitosť - Posuvník.
    Pre kvalitu obrazu a rozlíšenie – rozbaľovacia ponuka.

    Medzi každý prvok umiestnite text, ktorý označuje názov každého nastavenia. Mali by sme pridať aj tlačidlo, ktoré nás vráti späť do hlavného menu.

    Rozstup môžete upraviť v skupine Vertikálne rozloženie tak, aby medzi prvkami bol malý priestor. Pridajme na panel obrázok a získame nasledujúci výsledok:

    Programovanie tlačidiel
    Prejdime k písaniu skriptu menu.

    Potrebujeme, že stlačením tlačidla Play spustíme ďalšiu scénu s našou hrou a stlačením tlačidla Exit sa hra zatvorí.

    To si napíšeme do nášho scenára.

    Pre MainMenu pridajte nový komponent MenuControls.cs a otvorte ho.

    Prvá vec, ktorú musíte urobiť, je odstrániť existujúce metódy Štart () a Aktualizovať () - tu ich nepotrebujeme.

    Používanie UnityEngine.SceneManagement;
    Potom si napíšeme vlastnú metódu stlačenia tlačidla Play. Metóda musí byť verejná – musíme ju vidieť mimo nášho skriptu.

    SceneManager je zodpovedný za načítanie scény a má metódu LoadScene. Existuje niekoľko preťažení metód. Môžete preniesť názov scény, ktorú chcete načítať. V našom prípade ide o scénu „Hra“.

    Vo výsledku bude funkcia vyzerať takto.

    Verejné neplatné PlayPressed () (SceneManager.LoadScene ("Hra"));)
    Vytvorili sme tiež spôsob ukončenia hry:

    Public void ExitPressed () (Application.Quit ();)
    V Unity však výsledok tejto metódy neuvidíme, pretože funguje iba v zostave. Ak chcete skontrolovať, či všetko funguje správne, pridajte riadok do metódy

    Debug.Log ("Stlačený koniec!");
    Teraz musíte k týmto metódam pripojiť udalosti tlačidiel. Vyberte tlačidlo Prehrať a v inšpektorovi nájdite nasledovné:


    Toto je udalosť tlačidla, ktorá po kliknutí vyvolá metódy prihlásené na odber udalosti. Pridajte metódu kliknutím na +.

    Presuňte objekt obsahujúci požadovaný skript do okna, ktoré sa zobrazí. V našom prípade ide o Hlavné menu.

    Potom musíte vybrať skript MenuControls a nájsť metódu PlayPressed ().


    To isté urobíme pre tlačidlo Exit. Až teraz vyberieme metódu ExitPressed ().
    Pre tlačidlo Nastavenia nemusíme písať žiadny kód, pretože niektoré funkcie sú už zabudované.

    Pointa je, že aktivujeme GameObject. V tomto bode by ste mali mať aktívnu hlavnú ponuku a nastavenia by nemali byť viditeľné. Tiež vidíme, že keď aktivujeme Nastavenia, úplne sa prekrýva s Menu. Podstatou je, že úlohu zohráva poradie podriadených objektov plátna – v akom poradí sa nachádzajú v hierarchii v poradí, v akom budú nakreslené. Keďže sa Nastavenia nachádzajú nad hlavnou ponukou, prekrývajú ponuku.
    To je to, čo budeme používať.

    Vyberte tlačidlo Nastavenia a presuňte náš objekt Nastavenia na OnClick (). Vo funkciách vyberte GameObject -> SetActive (); a začiarknite. Páči sa ti to:


    No a pre tlačidlo Späť, ktoré je v ponuke možností, môžete rovnakým spôsobom pripojiť udalosť SetActive pre objekt Settings, ale tentoraz musíme náš objekt deaktivovať, takže políčko jednoducho nezaškrtneme.

    To je všetko, dokončili sme tvorbu menu a v ďalšej časti budeme pokračovať a prinútime hru reagovať na zmeny v nastaveniach.

    nastavenie
    Nastavenia celej obrazovky

    Prvá vec, ktorú si predpíšeme, je prepínanie medzi režimom celej obrazovky a oknami.
    Musíme zrušiť začiarknutie políčka Je zapnuté nášho prvku Prepnúť.
    Vytvorte skript pre objekt Nastavenia. Nazvime to Settings.cs.

    Najprv musíme uložiť boolovu premennú, ktorá bude zobrazovať aktuálny stav – na celú obrazovku alebo nie. A potom, po zmene prepínača, sa táto premenná prepne na opačnú hodnotu.

    Obrazovka má vlastnosť Screen.fullScreen typu bool. Tejto vlastnosti môžeme len priradiť hodnotu našej premennej isFullScreen.

    Kód vyzerá takto:

    Public void FullScreenToggle () (isFullScreen =! IsFullScreen; Screen.fullScreen = isFullScreen;)
    Výsledok môžete vidieť iba v zostave. Poďme na to teraz. Upozorňujeme, že na to, aby bola zostava správna, musíte nechať aktívny iba objekt MainMenu a vypnúť Nastavenia. Ak sa tak stane, spustite zostavu cez File-> BuildSettings a stlačte tlačidlo Build.

    Potom môžete skontrolovať fungovanie programu. Ak je všetko správne, kliknutím na začiarkavacie políčko sa režim okamžite zmení.

    Zmení hlasitosť zvuku v hre
    Na prácu s nastaveniami zvuku potrebujeme najskôr AudioMixer a tiež nejakú stopu, na ktorej skontrolujeme fungovanie našich nastavení.

    Pridajme tieto dva prvky. Najprv pridajte AudioMixer. Kliknite pravým tlačidlom myši v okne Projekt -> Vytvoriť-> AudioMixer.

    Hovoríme tomu GameSettings. Potom otvorte okno AudioMixer: Window-> Audio Mixer (Ctrl + 8).

    Ak chcete ovládať parametre mixéra pomocou skriptu, musia byť pre tento skript viditeľné. Tento postup sa nazýva ExposeParameters. Ak to chcete urobiť, kliknite na Mixer a nájdite hlasitosť v inšpektorovi a kliknite pravým tlačidlom myši. Výber Vystaviť skriptu:


    Teraz v okne Audio Mixer venujte pozornosť položke Exposed Parameters v ľavej hornej časti.
    Teraz je tam parameter. Kliknite naň a pomenujte náš parameter masterVolume. Mali by ste si zapamätať názov, ktorý mu priradíme - budete ho musieť špecifikovať v kóde.

    Prejdite na stránku Settings.cs a vytvorte pole AudioMixer, aby ste naň získali odkaz v kóde.

    Public AudioMixer am;
    potom vytvoríme metódu

    Public void AudioVolume (float sliderValue) (am.SetFloat ("masterVolume", sliderValue);)
    Metóda SetFloat prevezme hodnoty nášho posúvača a priradí túto hodnotu parametru „masterVolume“.

    Zostáva pripojiť našu metódu k udalostiam posúvača. Nájdite pole Pri zmene hodnoty v inšpektorovi posúvača a pripojte objekt rovnakým spôsobom. Teraz však nemusíme len vybrať metódu zo zoznamu, ale použiť pole Dynamic float. Ako vidíte, naša metóda už existuje a dostane premennú zo samotného posúvača. Musíte tiež pamätať na to, aby ste pretiahli AudioMixer do príslušného poľa v komponente Settings.cs.


    Všimnite si, že priamo spájame hodnotu posúvača s hodnotami zvukového mixéra. V audio mixpulte sa hlasitosť mení z -80 na 20. Nám postačí zmena z -80 (bez zvuku) na 0 (normálny zvuk). V nastaveniach posúvača nastavte minimálnu hodnotu na -80, maximálnu na 0.
    Teraz pridajme zvuky do našej hry, aby sme otestovali skript.
    Pridajte komponent Audio Source na plátno.
    Nakonfigurujme to nasledovne:


    Audio Clip - zvuková stopa
    Výstup - Majster nášho mixéra (detský objekt)
    Slučka – zaškrtnite políčko – slučka skladby, aby sa hrala neustále.
    Kvalita obrazu
    Unity má vstavané nastavenia kvality obrazu. Upraviť-> Nastavenia projektu-> Kvalita. V inšpektorovi vidíme Nastavenia kvality. Môžu byť pridané a prispôsobené.

    Zvláštnosťou práce s nastaveniami kvality je:
    Každé nastavenie zodpovedá indexu, ktorý môžeme získať z rozbaľovacej ponuky. Všetko, čo je potrebné urobiť, je prepísať zodpovedajúce položky do potrebných indexov v našom prvku používateľského rozhrania. Otvorte ho a v inšpektorovi nájdite Dropdown (Script) a v ňom položku Options. Ďalej zadajte nastavenia v požadovanom poradí. Mám to takto:


    Ďalej musíte napísať kód. Pokračujeme v pridávaní metód do nášho skriptu Settings.cs
    Vytvoríme metódu, ktorá zaberie int – index vybranej položky.

    Public void Quality (int q) (QualitySettings.SetQualityLevel (q);)
    Uložíme skript a pripojíme metódu k udalosti v našej ponuke. Tentoraz je to udalosť Dropdown - On Value Changed.

    Keďže naša metóda dostane hodnotu zo samotného prvku používateľského rozhrania, vyberieme názov metódy zo skupiny Dymanic int. analogicky s predchádzajúcim odsekom.

    Rozlíšenie obrazovky
    Obrazovky sú pre každého iné a nie je možné vopred odhadnúť, aké povolenia na nich budú podporované. Ak chcete upraviť rozlíšenie obrazovky, musíte najprv získať všetky možné rozlíšenia a potom vyplniť zoznam rozlíšení týmito hodnotami.

    Prvá vec, ktorú potrebujeme, je pole typu Rozlíšenie, kde budeme ukladať hodnoty rozlíšenia obrazovky.

    Pre rozbaľovacie položky je však typ reťazec. Preto vytvoríme zoznam<>do ktorého uložíme hodnoty možných rozlíšení. Ak chcete pracovať so zoznamami, musíte sa pripojiť:

    Používanie System.Collections.Generic;
    Potrebujeme tiež odkaz na príslušnú rozbaľovaciu ponuku. Ak chcete pracovať s prvkami používateľského rozhrania, mali by ste tiež napísať:

    Používanie UnityEngine.UI;
    V skripte dostaneme nasledujúce polia:

    Rozlíšenie rsl; Zoznam uznesenia; verejný rozbaľovací zoznam;
    Vykonávame inicializáciu a vyplnenie metódy Prebudiť. Táto metóda sa volá pri spustení objektu, a preto sa vykoná pred všetkými ostatnými metódami.

    Získame hodnoty a pridáme každú z nich do zoznamu vo formáte šírka * výška. Potom vymažeme rozbaľovací zoznam a vyplníme ho novými možnosťami.

    Public void Prebuďte sa () (rozlíšenia = nový zoznam (); rsl = Screen.resolutions; foreach (var i v rsl) (rozlíšenia. Pridať (i.šírka + "x" + i.výška);) rozbaľovacia ponuka.Vymazať možnosti (); dropdown.AddOptions (rozlíšenia); )
    Teraz musíme vytvoriť metódu, ktorá zmení rozlíšenie obrazovky. Rovnako ako v predchádzajúcich odsekoch preberieme hodnotu z prvku UI. Vytvorte funkciu, ktorá preberá int

    Public void Resolution (int r) (Screen.SetResolution (rsl [r] .width, rsl [r] .height, isFullScreen);)
    V SetResolution musíte zadať parametre – šírku, výšku a booleovskú premennú zodpovednú za celú obrazovku. Jeden už máme – toto je FullScreen. Odovzdáme ho funkcii.
    Ďalej nezabudnite pripojiť našu metódu rozlíšenia zo skupiny Dynamic Int k zodpovedajúcej udalosti a tiež pridať odkaz na požadovanú rozbaľovaciu ponuku.