美文网首页
Eevee框架8——场景切换

Eevee框架8——场景切换

作者: ShawnWeasley | 来源:发表于2020-08-20 08:28 被阅读0次

和对象池一样,本人场景切换用到的非常少(基本单场景搞定,因为个人感觉Unity自己加载第一个场景的速度,要远快于动态加载场景。也可能是我的幻觉。)

不管怎么说,大佬一般推荐进入的时候保持一个空场景,初始化一些参数,之后再去加载主场景,因此我们还是直接复制一下唐老师的场景加载工具。

怎么使用就不多介绍了(到现在还不会用的从头开始看吧),这里需要基于MonoUtil和Singleton,加载的时候记得要把场景拖到buildsettings上去:

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;

/// <summary>
/// 场景加载工具
/// </summary>
public class SceneUtil : Singleton<SceneUtil>
{
    /// <summary>
    /// 同步加载场景
    /// </summary>
    /// <param name="name">场景名</param>
    /// <param name="action">回调</param>
    public void LoadScene(string name, Action action)
    {
        SceneManager.LoadScene(name);
        action();
    }

    /// <summary>
    /// 异步加载场景
    /// </summary>
    /// <param name="name">场景名</param>
    /// <param name="action">回调</param>
    public void LoadSceneAsyn(string name, Action action)
    {
        //因为SceneMgr没有继承MonoBehavior,所以用MonoUtil来开启协程
        MonoUtil.Instance.StartCoroutine(LoadSceneAsynIE(name, action));
    }

    /// <summary>
    /// 协程异步加载方法
    /// </summary>
    /// <param name="name">场景名</param>
    /// <param name="action">回调</param>
    /// <returns></returns>
    private IEnumerator LoadSceneAsynIE(string name, Action action)
    {
        AsyncOperation ao = SceneManager.LoadSceneAsync(name);
        while (!ao.isDone)
        {
            //用事件中心去触发进度条更新事件,这个可用于进度条UI数值变化
            EventCenter.Instance.EventTrigger("进度条更新", ao.progress);
            yield return ao.progress;
        }
        action();
    }
}

相关文章

  • Eevee框架8——场景切换

    和对象池一样,本人场景切换用到的非常少(基本单场景搞定,因为个人感觉Unity自己加载第一个场景的速度,要远快于动...

  • Eevee框架10——UI框架

    想要一个完美的UI框架,貌似太理想了,这里参考了唐老师、siki等能百度到的很多UI框架,发现大家都只是做了界面的...

  • Eevee框架1——序

    一个多月来学了很多东西,想综合起来做一个自己的框架,那就从今天开始,构建一个自己用着趁手的框架吧。 其实凉鞋的QF...

  • Eevee框架2——单例

    这里我们跟唐老师一样,先创建一个单例的基类,这样后续很多类都可以简单地实现单例。如果不了解单例的,唐老师的免费前几...

  • Eevee框架7——Mono工具

    目前为止,我们已经有了单例、基于Mono的单例、对象池、事件系统四个轮子(工具),还需要继续造一些常用的工具。 一...

  • Eevee框架11——Json处理

    本篇开始我们开始进行数据的处理,在数据处理、资源处理完成后,我们就进行框架整合。数据处理首先是我们常用的Json处...

  • Eevee框架5——命名规范

    做着做着发现命名规则有必要统一一下,至少我本人需要统一一下,不能再随意命名了。本篇会根据开发过程中发现的命名问题,...

  • Eevee框架4——对象池

    这里先简述一下对象池的目的以及什么情况下需要对象池: 将部分需要持续性复用的物体(或对象)以隐藏/修改位置等方式先...

  • Eevee框架6——事件系统

    此处借鉴唐老师的事件系统。本人进行了书写规范化及一些非空判断避免报错等小优化。 如果对委托还不太了解的建议先看一下...

  • 八、5.0以下实现共享转场

    Transition框架常用于5.0之后的场景切换(Activity/Fragment的共享元素转场等),那么5....

网友评论

      本文标题:Eevee框架8——场景切换

      本文链接:https://www.haomeiwen.com/subject/hcudjktx.html