Unity 2D je výkonným nástrojem pro vytváření her s prostorovou pohyblivou grafikou. Jedním z nejdůležitějších aspektů vytvoření zábavné hry je vytvořit atmosféru, která hráče zaujme a udrží jeho zájem. Jedním ze způsobů, jak toho dosáhnout, je přidat do hry efekt dne a noci. Tento efekt vytváří změnu osvětlení a okolní atmosféry v závislosti na denní době.
V tomto průvodce krok za krokem prozkoumáme, jak vytvořit efekt dne a noci v Unity 2D.k tomu použijeme komponenty a skripty, které již Unity má.
Prvním krokem bude vytvoření časového cyklu, který bude řídit změnu osvětlení a okolní atmosféry. Skript můžeme použít k nastavení počáteční denní doby a poté jej každý snímek aktualizovat.
Dále budeme muset upravit světlé a tmavé osvětlení pro den a noc. K tomu můžeme použít světelné zdroje a různé efekty, jako je bloom a odraz.
Krok 1: Vytvoření pozadí a oblohy
1. Chcete-li začít, vytvořte nový objekt pozadí v Unity.
2. Vyberte obrázek pro pozadí vaší hry a importujte jej do Unity.
3. Přetáhněte vybrané pozadí na dříve vytvořený objekt pozadí.
4. Přizpůsobte velikost a umístění pozadí podle svých potřeb.
5. Poté vytvořte nový objekt oblohy v Unity.
6. Vyberte obrázek oblohy a importujte jej do Unity.
7. Přetáhněte vybraný obrázek oblohy na vytvořený objekt oblohy.
8. Nastavte velikost a umístění oblohy stejně jako pozadí.
Nyní máte pozadí a oblohu pro svou herní scénu, kterou můžete použít k vytvoření efektu změny denní doby.
Krok 2: Ovládání osvětlení
V Unity 2D můžete použít komponenty osvětlení, jako je Directional Light a Point Light, k přidání osvětlení do vaší scény. Directional Light vytváří iluzi paralelního osvětlení jako sluneční světlo, zatímco Point Light vytváří iluzi bodového zdroje světla, jako jsou žárovky.
Chcete-li vytvořit efekt dne a noci, budete muset během hry změnit nastavení osvětlení. Můžete například změnit intenzitu světla a jeho barvu, abyste vytvořili přechodový efekt z jasného denního světla na tmavé noční světlo.
Pro ovládání osvětlení v Unity 2D můžete použít skripty a komponenty. Můžete například vytvořit skript, který změní nastavení osvětlení podle časovače nebo události, jako je změna denní doby.
Kromě změny nastavení osvětlení můžete také použít skřítky a textury k vytvoření efektu přechodu ze dne na noc. Můžete například změnit texturu pozadí nebo použít skřítky k vytvoření efektu soumraku nebo úsvitu.
V dalším kroku se podíváme na to, jak přidat skript pro správu osvětlení a vytvořit efekt dne a noci v Unity 2D.
Krok 3: přepínání mezi dnem a nocí
Nyní, když jsme vytvořili základ pro efekt dne a noci, Naučme se přepínat mezi těmito stavy.
K tomu budeme muset přidat skript do našeho herního objektu, který je zodpovědný za přepínání denní doby. Vytvořte nový skript a přidejte jej do svého objektu.
V tomto skriptu použijeme výčet (enum) k zobrazení denní doby. Vytvořte nový seznam s názvem "TimeOfDay", který obsahuje dvě hodnoty:" Day "A"Night".
Dále vytvořte veřejné pole typu " TimeOfDay "a pojmenujte jej"currentTime". Toto pole zobrazí aktuální denní dobu.
Nyní přidáme metodu pro přepínání denní doby. Vytvořte veřejnou metodu nazvanou" ToggleTimeOfDay", která změní hodnotu proměnné" currentTime " na opačnou hodnotu (pokud je aktuální čas dnem, přepne se na noc a naopak).
K přepnutí denní doby použijeme podmíněné operátory. Pokud je aktuální čas den, budeme ho měnit na noc a naopak.
Přidejte do své metody "ToggleTimeOfDay"následující kód:
if (currentTime == TimeOfDay.Day)
currentTime = TimeOfDay.Night;
else
currentTime = TimeOfDay.Day;
Nyní naše metoda přepne denní dobu pokaždé, když je zavolána.
Nakonec přivážeme naši metodu "ToggleTimeOfDay" na klávesu klávesnice nebo tlačítko myši, abychom mohli během hraní přepínat denní dobu.
V Unity lze metodu snadno připnout ke stisknutí konkrétní klávesy nebo tlačítka myši pomocí speciálního nástroje v editoru.
Otevřete okno " Project Settings "a vyberte kartu"Input". Kliknutím na tlačítko" Create "vytvoříte nový záznam v tabulce"Axes". Zadejte název záznamu a vyberte tlačítko nebo klíč, kterým chcete přiřadit denní dobu.
Poté ve skriptu vašeho objektu vyhledejte metodu " Update "a přidejte kód, který zkontroluje stisknutí tlačítka nebo klávesy, a v odpovědi vyvolejte metodu" ToggleTimeOfDay".
Zde je příklad tohoto kódu:
if (Input.GetKeyDown(KeyCode.Space))
ToggleTimeOfDay();
Nyní, když spustíte hru a stisknete tlačítko nebo klávesu, kterou jste si vybrali, denní doba se bude přepínat mezi dnem a nocí.
Tímto končíme Krok 3. Nyní máte ve své hře funkční efekt dne a noci.