参考视频:
https://www.youtube.com/watch?v=XUK4OkqtnBohttps://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好项目分享】用全是好活制作横版卷轴射击游戏①简单制作滚动卷轴以及玩家移动
