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

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

Tento videotutoriál navazuje na předchozí díl o programování her pro Android v Unity, kde jsem se zabýval vytvořením menu nejnovějším způsobem a opravou.

Dnešní dí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.


 

  Aktivity (1)

Článek pro vás napsal vratislavino
Avatar
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.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 


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ě

 

 

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í!