23. diel - Unity (C #) Android: Asynchrónne načítanie scény
V predchádzajúcej lekcii, Unity (C #) Android - Návrat do menu , sme sa zaoberali vytvorením tlačidiel pre začiatok a koniec hry.
V minulej lekcii, Unity (C #) Android - Návrat do menu , som sa zaoberal vytvorením menu najnovším spôsobom a opravou.
Dnešná tutoriál sa bude zaoberať problémom, ktorý mal jeden z divákov. Keď spustíte level (scénu) na mobilnom zariadení, je znateľné seknutie, než sa level naozaj spustí. Je to preto, že načítanie nového levelu začne po kliknutí na tlačidlo Survival a celý program čaká, až sa herný scéna úplne načíta. Preto som vytvoril tento tutoriál o asynchrónnym načítanie scény, vďaka ktorému hra plynule pokračuje a zobrazuje sa koľko percent herného levelu bolo už načítané, kým sa naozaj 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(); } }
Ako hra vyzerá teraz?
Problémy?
Ak máte nejaké otázky, neváhajte sa opýtať v komentároch alebo mi napísať do správ.
V budúcej lekcii, Unity (C #) Android: Pľuvanie ohňa , sa budeme zaoberať možnosťou, že by drak mohol pľuvať oheň.