Lekce 19 - Unity (C#) Android: Asynchronní načtení scény
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í?

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ň.