关于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 ) ...
随机推荐
- Windows10下安装Maven以及Eclipse安装Maven插件 + 创建Maven项目
在官网下载Maven http://maven.apache.org/download.cgi 下载下来后加压缩,将apache-maven-3.5.4文件夹复制到想要存放它的位置,我放在了 ...
- POJ - 1266 -
题目大意:给出一条圆弧上的两个端点A,B,和圆弧上两端点之间的一个点C,现在要用一块各个定点的坐标均为整数的矩形去覆盖这个圆弧,要求最小的矩形面积. 思路:叉积在本体发挥很强大的作用.首先求出三个点所 ...
- hihoCoder.1509.异或排序(位运算 思路)
题目链接 \(Description\) 给定长为\(n\)的序列\(A\).求有多少\(S\),满足\(0\leq S<2^{60}\),且对于所有\(i\in[1,n-1]\),\(a[i] ...
- 用Canvas做视频拼图
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 几天前同事给我看了一个特效,是一个拼图游戏,不同的是,拼图里的是动画.他让我看下做个DEMO,于是就自己整了一会,也确实不难.用canva ...
- netty相关
https://my.oschina.net/jamaly/blog/272385两个客户端之间的交互 http://blog.csdn.net/a953713428/article/details/ ...
- 与TIME_WAIT相关的几个内核参数修改测试讨论结论
以下来结论自tcpcopy & gryphon讨论群 经过试验测试得出,不保证肯定正确. net.ipv4.tcp_tw_recycle net.ipv4.tcp_tw_reuse net ...
- Linux的SSH免密登录认证过程研究
一.先看下SSH免密登录使用到的工具和生成的文件 工具:ssh-keygen用于生成秘钥文件,其中秘钥分为公钥和私钥.ssh-copy-id用于复制公钥文件到被控制机. 文件:ssh-keygen生成 ...
- ECharts的geojson地图数据下载(根据城市区划代码的前六位查询)
链接如下: http://echarts.baidu.com/echarts2/doc/example/geoJson/china-main-city/522200.json 想要对应城市的geojs ...
- 启动exe
public void OpenTabTip(){ bool bt = true; Process[] processes = Process.GetProcesses(); for ...
- 使用go语言操作db2
操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 db2版本: db2_v101_linuxx64_expc 问题描述 怎么使用go语言在CentO ...