游戏管理。

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. TNS:listener does not currently know of service requested in connect descriptor错误改正

    (SID_LIST = (SID_DESC =  (SID_NAME = PLSExtProc)  (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)  (PR ...

  2. scikit-learn全局图

    https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

  3. DB2<RedHed Linux> 创建数据库

    1 DB2 安装后组情况 Users User Desc Username Home folder Password Group   Administration User -dasusr1 /hom ...

  4. 安卓工作室 android studio文件和代码模板,以及汉化出错问题

    安卓工作室 android studio文件和代码模板,以及汉化出错问题 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313 ...

  5. C#获得窗口控件句柄

    /*整个Windows编程的基础.一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条, ...

  6. hdu4035 Maze

    题目链接 hdu4035 Maze 题解 f[u]表示在节点u通关的所需的边数期望 转移方程分叶子节点和非叶子点讨论 发现都可以化成f[x]=af[1]+bf[dad]+c的形式 然后推一下系数 还是 ...

  7. BZOJ 4805: 欧拉函数求和 杜教筛

    https://www.lydsy.com/JudgeOnline/problem.php?id=4805 给出一个数字N,求sigma(phi(i)),1<=i<=N https://b ...

  8. hihocoder 1496 寻找最大值(高维前缀最大次大值)

    [题目链接] https://hihocoder.com/problemset/problem/1496 [题目大意] 给定N个数A1, A2, A3, ... AN, 从中找到两个数Ai和Aj(i≠ ...

  9. 用面向对象计算BMI指数

    from __future__ import division class Student: def __init__(self,name,weight,height): self.name=name ...

  10. 在Notepad++中快捷选中多行

    原文: 在Notepad++中快捷选中多行 Notepad++是Windows下一款很好用的文本编辑器. 如果需要在一个文档中选中指定的若干行,常见的办法是鼠标按住拖动.这样对于少数几行的选取还可以, ...