zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    [转] jquery作者John Resig编写的微模板引擎:JavaScript Micro-Templating
    【转】一种解决h5页面背景音乐不能自动播放的方案
    [转]JavaScript快速检测浏览器对CSS3特性的支持
    [转]用CSS给SVG <use>的内容添加样式
    【转】【翻译】对响应式SVG的再思考
    用 highlight.js 为文章中的代码添加语法高亮
    转载:[AngularJS系列] 那伤不起的provider们啊~ (Provider, Value, Constant, Service, Factory, Decorator)
    vue项目中遇到的过滤去重
    css 弹性盒
    vue axios用法
  • 原文地址:https://www.cnblogs.com/zhepama/p/4350188.html
Copyright © 2011-2022 走看看