Přejít na hlavní obsah

Jak vytvořit pohybový efekt rychlostní stupnice v Unity: pokyny krok za krokem

  • Kristina Vítek
  • Praxe

Unity - je to výkonné multiplatformní vývojové prostředí, které je široce používáno k vytváření her a interaktivní virtuální reality. Jednou z klíčových funkcí Unity je schopnost vytvářet různé pohybové efekty, které pomáhají učinit hru realističtější a vzrušující. V tomto článku se podíváme na podrobný návod, jak vytvořit pohybový efekt rychlostní stupnice.

Rychlostní stupnice - je to prvek, který zobrazuje aktuální rychlost objektu na obrazovce. Často se používá v automobilových závodech a dalších hrách, kde je třeba ovládat a zobrazovat rychlost pohybu objektů. Vytvoření pohybového efektu rychlostní stupnice může do hry přidat dynamiku a realističnost a také pomoci hráči ovládat svůj pohyb.

Chcete-li vytvořit pohybový efekt rychlostní stupnice v Unity, musíte provést několik kroků. Nejprve je nutné vytvořit pohyblivý prvek pro rychlostní stupnici. Za druhé, musíte přizpůsobit pohybovou animaci tohoto prvku. Za třetí je třeba tuto animaci propojit s aktuální rychlostí objektu. V důsledku toho se při změně rychlosti objektu na obrazovce plynule změní poloha rychlostní stupnice, což vytvoří pohybový efekt.

Krok 1: vytvoření objektu rychlostní stupnice

Chcete-li vytvořit prázdný objekt, otevřete okno Hierarchy a klikněte pravým tlačítkem myši na prázdný prostor. V kontextové nabídce vyberte "Create Empty".

Po vytvoření prázdného objektu, můžete jej přejmenovat, aby odrážel jeho účel. Můžete jej například nazvat "Speedometer".

Nyní přidejme našemu objektu komponentu, která zobrazí grafickou stupnici. Chcete-li to provést, klikněte na objekt Speedometer a poté přejděte na okno Inspector. V tomto okně můžete do objektu přidat komponenty.

Vyhledejte v okně Inspector tlačítko "Add Component" a klikněte na něj. Poté přejděte na kartu "UI", vyhledejte komponentu "Image" a přidejte ji.

Komponenta Image umožňuje zobrazovat grafické prvky, jako jsou skřítci a textury. Použijeme ho k zobrazení rychlostní stupnice.

Nyní, když máme komponentu Image, můžeme upravit její vlastnosti. Můžete si například vybrat sprite pro zobrazení stupnice nebo upravit její velikost a polohu na obrazovce.

Krok 2: implementace animace stupnice

Pro implementaci animace rychlostní stupnice v Unity je nutné použít skript a příslušné komponenty.

1. Vytvořte nový prázdný objekt ve scéně a pojmenujte jej "Speedometer".

2. Přidejte do objektu "Speedometer" komponentu "Rectransform" pro práci s pozicí a velikostí.

3. Vytvořte nový skript a přidejte jej do objektu "Speedometer". Pojmenujte skript například "SpeedometerAnimation".

4. Otevřete skript pro úpravy a přidejte následující kód:

using UnityEngine;using UnityEngine.UI;public class SpeedometerAnimation : MonoBehaviourpublic void SetSpeed(float speed)>

5. V inspektoru objektu " Speedometer "vyhledejte komponentu" Image "a přiřaďte ji do pole" Speedometer Fill "ve skriptu"SpeedometerAnimation".

6. Hotovo! Nyní můžete tento skript použít k nastavení hodnoty stupnice rychlosti a animace jejího vyplnění.

public SpeedometerAnimation speedometerAnimation;void Update()

Poznámka: V tomto příkladu se předpokládá, že již máte metodu "CalculateCurrentSpeed ()", která vrací aktuální rychlost.

Nyní se vaše rychlostní stupnice bude plynule animovat, když se změní hodnota!

Krok 3: Konfigurace událostí posouvání

Nyní, když máme nastavenou rychlostní stupnici a měřič rychlosti, můžeme implementovat událost rolování. V tomto kroku přidáme kód, který aktualizuje hodnotu stupnice a měřiče rychlosti v závislosti na pohybu myši nebo stisknutí kláves.

  1. Na začátku otevřete skript obsahující kód pro řízení rychlosti.
  2. Přidejte do skriptu další funkci pro zpracování posouvání:

float scroll = Input.GetAxis("Mouse ScrollWheel");

speed += scroll * sensitivity;

speed = Mathf.Clamp(speed, minSpeed, maxSpeed);

  • Funkce 'Update' se vyvolá každý snímek a zpracuje vlastní vstup.
  • The proměnná 'scroll' zachovává hodnotu posouvání kolečka myši při každé aktualizaci snímku.
  • Pokud hodnota `scroll` není nulová, aktualizujeme hodnotu rychlosti podle posouvání myši.
  • Funkce ' Mathf.Clamp ' se používá k omezení hodnoty rychlosti v rámci daných minimálních a maximálních hodnot.
  • Na konci je povolána funkce 'UpdateSpeedometer' pro aktualizaci zobrazení hodnoty rychlosti na stupnici.
  1. Poté musíme implementovat aktualizaci rychlosti stisknutím kláves. Přidejte následující kód do funkce ' Update`:

float movement = Input.GetAxis("Vertical") * movementSpeed * Time.deltaTime;

if (movement != 0f)

speed = Mathf.Clamp(speed, minSpeed, maxSpeed);

  • The proměnná 'movement' je zachována hodnota svislé osy při každé aktualizaci snímku.
  • Pokud hodnota 'movement' není nulová, aktualizujeme hodnotu rychlosti podle stisknutí kláves.
  • Funkce ' Mathf.Clamp ' se používá k omezení hodnoty rychlosti v rámci daných minimálních a maximálních hodnot.
  • Na konci je povolána funkce 'UpdateSpeedometer' pro aktualizaci zobrazení hodnoty rychlosti na stupnici.
  1. Nakonec přidejte do skriptu další funkci `UpdateSpeedometer`, abyste aktualizovali zobrazení hodnoty rychlosti na rychlostní stupnici:

float normalizedSpeed = speed / maxSpeed;

speedIndicator.transform.localScale = new Vector3(normalizedSpeed, 1f, 1f);

  • Funkce 'UpdateSpeedometer' se používá k aktualizaci měřítka ukazatele rychlosti podle aktuální hodnoty rychlosti.
  • Hodnota rychlosti se normalizuje, aby se pohybovala v rozmezí 0 až 1, a poté je nastavena jako hodnota měřítka na ose X u `speedIndicator`.

Nyní máme plně funkční kód pro přizpůsobení událostí posouvání rychlosti. V dalším kroku přidáme model auta, aby naše aplikace vypadala realističtěji.