Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

19. díl - Unity (C#) Android: Asynchronní načtení scény

C# .NET Unity 3D Unity (C#) Android: Asynchronní načtení scény

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Unity (C#) Android: Nové UI FIX, jsem se zabýval vytvořením menu nejnovějším způsobem a opravou.

Dnešní tutoriál se bude zabývat problémem, který měl jeden z diváků. Když spustíte level (scénu) na mobilním zařízení, je znatelné seknutí, než se level opravdu spustí. Je to proto, že načítání nového levelu začne po kliknutí na tlačítko Survival a celý program čeká, až se herní scéna zcela načte. Proto jsem vytvořil tento tutoriál o asynchronním načítání scény, díky němuž hra plynule pokračuje a zobrazuje se kolik procent herního levelu bylo již načteno, dokud se opravdu nespustí.

Video

ReactionScript

Upravený reaction script:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class ReactionScript : MonoBehaviour
{
    public GameObject loadingLevelPanel;

    private void ClickedArcade()
    {
        print("clicked Arcade");
    }

    public void ClickedSurvival()
    {
        //print("clicked survival");
        StartCoroutine(LoadLevel());
    }

    private IEnumerator LoadLevel()
    {
        AsyncOperation async = Application.LoadLevelAsync("default_Scene");
        loadingLevelPanel.SetActive(true);
        Text percentText = loadingLevelPanel.GetComponentInChildren<Text>();

        while (!async.isDone)
        {
            percentText.text = (async.progress * 100).ToString("N2") + "%";
            yield return null;
        }
    }

    public void ClickedExit()
    {
        Application.Quit();
    }

}

Jak hra vypadá nyní?

Hra v C# .NET Unity 3D

Problémy?

Pokud máte nějaké otázky, neváhejte se zeptat v komentářích nebo mi napsat do zpráv.

V příští lekci, Unity (C#) Android: Plivání ohně, se budeme zabývat možností, že by drak mohl plivat oheň.


 

 

Článek pro vás napsal vratislavino
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Autor se věnuje programování v C#, především pak ve vývojovém prostředí Unity3D. Má asi pětileté zkušenosti s programováním a momentálně pracuje na připravované hře Azulgar: Beyond The Frontiers.
Miniatura
Předchozí článek
Unity (C#) Android: Nové UI FIX
Miniatura
Všechny články v sekci
Programování her v Unity3D v C# .NET
Miniatura
Následující článek
Unity (C#) Android: Plivání ohně
Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!