Přeskočit obsah

Úloha 5 - Unity AR

Prezentace

Použitá verze Unity 2022.3.10f

Vytvoření hlavního menu aplikace a základní ovládání Unity

1. Import projektu

  • import projektu "YV3D_test" a představení Unity UI

2. Vytvoření UI tlačítek

  • v hlavním menu se vytvoří 2 tlačítka - jedno pro Markerless AR, druhé pro Location-based AR

Přidání tlačítka

  • základní metody pro Unity C#

    • Awake()
      • popis: Volá se jako první při inicializaci skriptu (před funkcí Start). Používá se pro inicializaci, která nezávisí na jiných skriptech.
      • spuštění: Ihned po přidání skriptu do scény nebo při aktivaci objektu.
    • Start()
      • popis: Volá se jednou na začátku životního cyklu objektu, těsně před prvním voláním funkce Update. Vhodné pro inicializaci závislou na ostatních objektech.
      • spuštění: Po dokončení všech Awake() metod ve scéně.
    • Update()
      • popis: Volá se každým snímkem (frame). Používá se pro logiku, která se má provádět průběžně, např. kontrola vstupů od uživatele nebo pohyb objektů.
      • spuštění: V každém snímku během běhu aplikace.
    • OnEnable()/OnDisable()
      • popis: Volá se, když je objekt nebo skript povolen (enabled)/zakázán (disabled).
      • spuštění: Při aktivaci/deaktivaci objektu nebo komponenty.
  • výpis zprávy do konzole při stisknutí tlačítka

        // Markerless AR tlačítko
        public void OnMarkerlessARClicked()
        {
            Debug.Log("Tabletop AR button has been clicked");
        }
    

  • změna scény tlačítkem
    // Markerless AR tlačítko
    public void OnMarkerlessARClicked()
    {
        Debug.Log("Tabletop AR button has been clicked");
        SceneManager.LoadScene("SimpleSample");
    }
  • přiřazení skriptu pro ovládání Menu do nového game objectu MenuComponent

  • zpětné tlačítko SimpleSample -> Menu

  • Poznámka: pro fungování přepínání scén v telefonu je nutné dané scény vložit do aktivních scén v Build Settings a po zapnutí aplikace se zapne první scéna v pořadí

Změna cílové platformy

Markerless AR

  • kontrola nastavení AR v Build Setting a Player Settings

  • kontrola nainstalovaných pluginů

  • vytvoření nové scény MarkerlessAR

  • přidání game objectů

    • AR Session - řídí běh AR
    • XR Origin - spravuje pozici a orientaci AR objektů v prostoru
  • do XR Origin se přidají komponenty

    • AR Plane Manager - umožňuje detekovat rovné plochy (např. stoly, podlahy)
    • AR Raycast Manager - umožňuje interakci s reálným světem, např. pokládání objektů na detekované plochy

Přidání AR game objectů

  • vytvoření materiálu pro skenování ploch -> nový komponent AR Default Plane

Vytvoření detekce ploch

  • vytvoření složky Prefabs, do které se přetažením vloží AR Default Plane

  • připnutí AR Default Plane do komponentu AR Plane Manager

Nastavení detekování ploch

  • vytvoření nebo přidání 3D modelu do složky Models

  • přidání skriptu zobrazující model ARTapToPlaceObject

  • smazat původní gameobject MainCamera

Nastavení AR scény

  • přidání ovládání AR modelu pomocí pluginu Lean Touch

  • přidání EventSystem do scény pro možnost zprovoznění dotykového ovládání

  • přidání LeanTouch gameobjectu pro ovládání dotyku

Nastavení dotykového ovládání

  • vložení komponent Lean Pinch Scale a Lean Twist Rotate Axis do modelu kostela - v Inspectoru

  • nastavení parametrů dle obrázku níže

Parametry dotykového ovládání

  • výsledek:

Výsledná AR vizualizace v aplikaci

Location-based AR