游戏管理。

GameManager
单例:
绑定在不同的gameobject上,还是会每次都实例化一个GameManager
但是可以为每一个GameManager赋值一个已经存在的单例
--------------------

awake()
如果是第一次启动会增加MainThreadDispatcher组件。永不销毁
如果是重新加载该关卡的时候或者单例已经存在。会重启启动并设置start场景管理

Start() 如果是第一次启动过渡到start场景管理中
-----------------------
Startup()
清除所有场景

注册当前关卡中的所有场景管理

设置ActiveSceneManager为_Start

----------------------
RegisterSceneManager
1.会设置sceneManager的Container为gameManager的Container
2.会SwitchLevelSettings执行切换关卡设置
3.向容器中注入sceneManager
4.执行sceneManager的Setup()和Initialize()
5.设置sceneManager的enabled为false且其对象不激活

-----------------------------
Transition()----该方法将过渡到另一个sceneManager,或加载第一个sceneManager

sceneManager.OnLoading();//加载开始
开始一个LoadSceneManager的携程
sceneManager.Load(progress)//加载过程
sceneManager.OnLoaded(); //加载完成

------------------------------------------------
加载另外一个关卡
TransitionLevel
SwitchLevelSettings

-----------------
LevelLoadViewModel LoadingViewModel
LevelLoadViewModel Progress
Load

------------------------------
ExecuteCommand
CommandsAsObservable
Subscribe

------------------------------------------------------------------
ViewContainer 所有视图容器的基类继承与MonoBehaviour
TView CreateView<TView>(ViewModel model) 创建view
ViewBase InstantiateView(ViewModel model) 实例化一个view
Coroutine LoadAdditive(string rootObjectName, string levelName, Action<GameObject> complete = null) 使用协程加载完某个场景(levelName),然后使用委托处理(rootObjectName)
------------------------------------------------
场景管理

MainSceneManagerSettings 场景管理设置 具有SerializableAttribute特性。可被序列化。。且是个密封类

MainSceneManagerBase:SceneManager:ViewContainer, ITypeResolver

ITypeResolver 接口实现了GetType SetType CreateInstance

SceneManager
实例化的时候会注册到GameManager中

-------------------------------------------------
view 包含viewModel
viewModel包含controller

-------------------------------
classnode 实现了INotifyPropertyChanged

关于uframe源码的一些解读的更多相关文章

  1. Spring源码之SimpleAliasRegistry解读(一)

    Spring源码之SimpleAliasRegistry解读(一) 阅读spring源码中org.springframework.core.SimpleAliasRegistry类时发现该类主要是使用 ...

  2. negroni-gzip源码简单分析解读

    negroni-gzip源码简单分析解读 这是一个为Negroni设计的gzip压缩处理中间件,需要用到已有的compress中的gzip,阅读了不长的源码之后,总结了一些关键要点和注意点. 检查是否 ...

  3. petite-vue源码剖析-逐行解读@vue/reactivity之reactive

    在petite-vue中我们通过reactive构建上下文对象,并将根据状态渲染UI的逻辑作为入参传递给effect,然后神奇的事情发生了,当状态发生变化时将自动触发UI重新渲染.那么到底这是怎么做到 ...

  4. 难道你还不知道Spring之事务的回滚和提交的原理吗,这篇文章带你走进源码级别的解读。

    上一篇文章讲解了获取事务,并通过获取的connection设置只读,隔离级别等:这篇文章讲事务剩下的回滚和提交. 事务的回滚处理 之前已经完成了目标方法运行前的事务准备工作.而这些准备工作的最大目的无 ...

  5. petite-vue源码剖析-逐行解读@vue-reactivity之Map和Set的reactive

    本篇我们会继续探索reactive函数中对Map/WeakMap/Set/WeakSet对象的代理实现. Map/WeakMap/Set/WeakSet的操作 由于WeakMap和WeakSet分别是 ...

  6. petite-vue源码剖析-逐行解读@vue-reactivity之effect

    当我们通过effect将副函数向响应上下文注册后,副作用函数内访问响应式对象时即会自动收集依赖,并在相应的响应式属性发生变化后,自动触发副作用函数的执行. // ./effect.ts export ...

  7. jQ1.5源码注释以及解读RE

    jQ作为javascript的库( ▼-▼ ), 尽善尽美, 代码优美,  值得学习.  这一周平常上班没啥事也看jQ1.5的代码, 今天周六差不多看完了(Sizzle部分还没看), 重新看了一下, ...

  8. 关于jQuery的ajax的源码的dataType解读

    $.ajax其实底层还是用的XMLHttpRequest,对于加载数据的格式datatype有:xml.text.html.json.jsonp.script. 其中xml.text不需要处理,直接使 ...

  9. jQuery源码框架fn解读

    (function( window, undefined ){ var jQuery = (function(){ var jQuery = function( selector, context ) ...

随机推荐

  1. C++对文本文件的读取和输出

    本文转载自xmh_free 自己浏览了上方的博客,主要整理了一下关于C++对文件的输入输出方法,如果想看C语言的输入输出方法,可浏览上述链接的博客 C++读写函数 在C++中,对文件的操作是通过str ...

  2. oracle中tables和views的区别

    tables存储的行和列的数据,可以做任何操作 views存储的是算法,是虚拟的数据

  3. hdu2973 YAPTCHA【威尔逊定理】

    <题目链接> 题目大意: The task that is presented to anyone visiting the start page of the math departme ...

  4. String 方法indexOf()

    indexOf()来测是否包含子字符串. indexOf(sub, start) 如果return 是-1 包含没有找到字段.

  5. 项目Alpha冲刺——随笔集合

    课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称:葫芦娃队 作业目标:汇总这次冲刺项目的所有随笔文件. 队员学号 队员昵称 博客地址 041602421 de ...

  6. NTFS的交换数据流ADS应用

    NTFS的交换数据流ADS应用   NTFS是Windows常用的文件系统格式.该格式支持交换数据流(Alternate Data Streams,缩写ADS)特性.该特性可以让多个文件流使用同一个文 ...

  7. 5288: [Hnoi2018]游戏

    5288: [Hnoi2018]游戏 链接 分析: 考虑y<=x的怎么做,那么只能从左边走到右边.我们可以从最右边的点开始,一次确定每个点往右边可以走多少. L[x],R[x]分别是x向左向右最 ...

  8. 使用Date和SimpleDateFormat类表示时间

    Date类: 使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下: Date d = new Date(); System. ...

  9. .Net Core URL编码和解码

    一.URL说明 .Net Core中http 的常用操作封装在 HttpUtility 中 命名空间 using System.Web; // // 摘要: // Provides methods f ...

  10. iOS开发-装饰模式

    装饰模式是指在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.通过创建一个包装对象,也就是装饰来包裹真实的对象.装饰模式中的装饰对象和真实对象有相同的接口.这样客户端对象就能以和真实对象 ...