博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于uframe源码的一些解读
阅读量:7233 次
发布时间:2019-06-29

本文共 1792 字,大约阅读时间需要 5 分钟。

游戏管理。

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

转载地址:http://zzpfm.baihongyu.com/

你可能感兴趣的文章
flask 中从eml中获取头邮件头信息
查看>>
laravel上传文件&获取请求实例(隐式)
查看>>
适配低内存手机让app存在多个进程
查看>>
BW中DSO的分类
查看>>
echo -en
查看>>
Mysql 复制(Replication)实现
查看>>
我的友情链接
查看>>
jar生成exe可执行的程序
查看>>
date 转化为 指定格式的String
查看>>
使用virtualbox安装RHEL 6.2+Oracle 11g
查看>>
系统的域名服务
查看>>
MySQL 复制表结构
查看>>
《Effective C#》条款8:确保0为值类型的有效状态
查看>>
动态迁移应用服务器(Esxi 动态迁移技术,业务不间断,在线迁移)
查看>>
systemd coding style
查看>>
warning: control reaches end of non-void function
查看>>
Tkinter, a Gui for python
查看>>
android开发之webservice介绍
查看>>
纯js页面跳转整理
查看>>
目标:嗯,每天进步一点点,每周坚持写一点
查看>>