关于uframe源码的一些解读
游戏管理。
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源码的一些解读的更多相关文章
- Spring源码之SimpleAliasRegistry解读(一)
Spring源码之SimpleAliasRegistry解读(一) 阅读spring源码中org.springframework.core.SimpleAliasRegistry类时发现该类主要是使用 ...
- negroni-gzip源码简单分析解读
negroni-gzip源码简单分析解读 这是一个为Negroni设计的gzip压缩处理中间件,需要用到已有的compress中的gzip,阅读了不长的源码之后,总结了一些关键要点和注意点. 检查是否 ...
- petite-vue源码剖析-逐行解读@vue/reactivity之reactive
在petite-vue中我们通过reactive构建上下文对象,并将根据状态渲染UI的逻辑作为入参传递给effect,然后神奇的事情发生了,当状态发生变化时将自动触发UI重新渲染.那么到底这是怎么做到 ...
- 难道你还不知道Spring之事务的回滚和提交的原理吗,这篇文章带你走进源码级别的解读。
上一篇文章讲解了获取事务,并通过获取的connection设置只读,隔离级别等:这篇文章讲事务剩下的回滚和提交. 事务的回滚处理 之前已经完成了目标方法运行前的事务准备工作.而这些准备工作的最大目的无 ...
- petite-vue源码剖析-逐行解读@vue-reactivity之Map和Set的reactive
本篇我们会继续探索reactive函数中对Map/WeakMap/Set/WeakSet对象的代理实现. Map/WeakMap/Set/WeakSet的操作 由于WeakMap和WeakSet分别是 ...
- petite-vue源码剖析-逐行解读@vue-reactivity之effect
当我们通过effect将副函数向响应上下文注册后,副作用函数内访问响应式对象时即会自动收集依赖,并在相应的响应式属性发生变化后,自动触发副作用函数的执行. // ./effect.ts export ...
- jQ1.5源码注释以及解读RE
jQ作为javascript的库( ▼-▼ ), 尽善尽美, 代码优美, 值得学习. 这一周平常上班没啥事也看jQ1.5的代码, 今天周六差不多看完了(Sizzle部分还没看), 重新看了一下, ...
- 关于jQuery的ajax的源码的dataType解读
$.ajax其实底层还是用的XMLHttpRequest,对于加载数据的格式datatype有:xml.text.html.json.jsonp.script. 其中xml.text不需要处理,直接使 ...
- jQuery源码框架fn解读
(function( window, undefined ){ var jQuery = (function(){ var jQuery = function( selector, context ) ...
随机推荐
- Python - 经典程序示例
列表排序 def que6(): # 6.输入三个整数x, y, z,形成一个列表,请把这n个数由小到大输出. # 程序分析:列表有sort方法,所以把他们组成列表即可. li = np.random ...
- centos7.2下安装Mysql笔记
centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...
- python的random模块(生成验证码)
python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...
- 001.Docker简介概述
一 简介 Docker最初是dotCloud公司的一个内部项目,诞生于 2013 年初,由google公司开源的Go语言开发. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移 ...
- Spring MVC 注解 @RequestParam解析
在Spring MVC 后台控制层获取参数的方式主要有两种,一种是requset.getParameter(“name”),另一种是用注解@Resquest.Param直接获取. 一.基本使用获取提交 ...
- Bootstrap 警告、进度条、列表组、面板
摘要:该部分包括警告.进度条.列表组.面板等部分. 1.警告(alert) 1.1 基本的警告(.alert) 警告的基类是 .alert .和其他样式类一块使用.例如: .alert-success ...
- BZOJ.1468.Tree(点分治)
BZOJ1468 POJ1741 题意: 计算树上距离<=K的点对数 我们知道树上一条路径要么经过根节点,要么在同一棵子树中. 于是对一个点x我们可以这样统计: 计算出所有点到它的距离dep[] ...
- “IT学子成长指导”专栏及文章目录 —贺利坚
迂者专栏关键词 就 业 大一 大二 大三 大四 自学 职 场 专业+兴趣 研究生 硕士 规 划 考 研 大学生活 迷 茫 计算机+专业 基本功 学习方法 编程 基 础 实践 读书 前 途 成 长 社团 ...
- 关于css的一些特别用法
(1)input 怎么设置宽高用style来设置,<input style="width:111px;height:111px">(2)怎么让img和input在同一行 ...
- GitLab 安装(推荐)
参考文档: https://about.gitlab.com/installation/#centos-7 基础环境 [root@node1 ~]# uname -r -.el7.x86_64 [ro ...