参考视频:
https://www.youtube.com/watch?v=XUK4OkqtnBo
https://www.youtube.com/watch?v=XUK4OkqtnBo
学习目标:
每个游戏都会有它独一无二的加载界面,因此教大伙如何制作人物关卡加载界面(+阴影淡化)
学习内容:

首先我们创建另一个Canvas名字就叫NextCanvas和第一个Canvas区别,并把它的SortingOrder调为0
然后再给它一个Button作为点击事件再给Button一个子对象Text
我们在创建一个空对象LoadingManager并把第一个Canvas作为子对象,创建一个叫LoadingManager的脚本
内容如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class LoadingManager : MonoBehaviour { //创建脚本的单例 public static LoadingManager instance; public GameObject loadingPanel; public GameObject loadingWheel; //渐变阴影 public Image Fade; public float FadeTime; //要加载的目标场景 private string targetScene; public float WheelSpeed; //最小加载时间 public float minLoadTime; //判断是否加载中 private bool isLoading; private void Awake() { if(instance != null) { instance = this; //加载下一个场景不要删除 DontDestroyOnLoad(instance); } loadingPanel.SetActive(false); Fade.gameObject.SetActive(false); } public void LoadingScene(string sceneName) { targetScene = sceneName; StartCoroutine(LoadSceneRoutine()); } IEnumerator LoadSceneRoutine() { isLoading = true; Fade.gameObject.SetActive(true); Fade.canvasRenderer.SetAlpha(0); while (!GetFade(1)) yield return null; loadingPanel.SetActive(true); StartCoroutine(SpinWheelRoutine()); while (!GetFade(0)) yield return null; AsyncOperation operation = SceneManager.LoadSceneAsync(targetScene); float elapsedLoadTime = 0f; while (!operation.isDone) { elapsedLoadTime += Time.deltaTime; yield return null; } while(elapsedLoadTime < minLoadTime) { elapsedLoadTime += Time.deltaTime; yield return null; } while (!GetFade(1)) yield return null; loadingPanel.SetActive(false); while (!GetFade(0)) yield return null; isLoading = false; } private bool GetFade(float target) { Fade.CrossFadeAlpha(target, FadeTime, true); if (Mathf.Abs(Fade.canvasRenderer.GetAlpha() - target)关注
打赏
热门博文
- 【Untiy2D独立/合作开发】特别篇:如何实现快速丢掉物品
- [Unity2D独立/合作开发]实现记录物品在不同场景的存在状态,附:场景的淡入淡出功能和预加载
- 【Unity好插件之PlayMaker系列一上半部分】如何只用一个插件和一个脚本完成制作一个简易的游戏
- [Unity存档系统]简单介绍Unity常见存档系统二JSON以及使用方法
- [Unity存档系统]简单介绍Unity常见存档系统之一PlayerPrefs以及使用方法
- 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏⑤制作得分系统以及能量的使用。
- 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏④制作敌人管理器以及播数显示和音效以及场景加载器
- 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏③制作血条和能量条UI以及生命值系统和能量值系统
- 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏②游戏画面后处理以及制作玩家子弹
- 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏①简单制作滚动卷轴以及玩家移动