uFrame 1.6杂乱笔记与一些翻译

原创 2017年01月03日 23:29:03

The Kernel
The Kernel是uFrame的本质,负责处理加载场景,系统和服务。

Subsystems
作为一个容器,组成许多Nodes。
Subsystems允许你分离项目中的逻辑部分和可复用部分。
System Loaders
System Loaders常用语初始化信息。

Node
Elements

  • 主要负责ViewModel(Unity中uFrame框架附带了Controller)部分
    For example, Player element could contain information about player properties like health, running speed, obtained weapons or
    actions; Shoot, TakeDamage or Die.
    一个Elements会创建对应的ViewModel和Controller类
    这里写图片描述

  • Inheritance(继承)

    如下图,可以连接两个elements,后者继承前者。 SettingsScreen Element will contain the IsActive property and Close command of its parent SubScreen.这里写图片描述

Views

  • 游戏中的表现层(数据来源与绑定ViewModel)。
    For instance, a PlayerView should probably exist on some kind of Player GameObject, and a PlayerHUDView should probably exist on some
    kind of GUI GameObject to bind to and express a player’s stats and
    other properties.

  • Important Methods(可以重写)
    All Views inherit from a ViewBase class. Here are the most important methods. You can override all of them.
    InitializeViewModel()
    View匹配ViewModel时的一些初始化。不勾选Initialize ViewModel则不被执行
    PreBind()
    This happens before the View begins creating bindings to its given ViewModel.
    Bind()
    This is where the View actually creates property bindings, collection bindings, and command bindings to the given ViewModel. The base.Bind() call will automatically create the bindings specified in the uFrame diagram for this specific View type.If you have any further manual bindings you need to do, this can be agood place to implement them.
    AfterBind()
    This is called immediately after the View creates bindings to its ViewModel.

  • Inspector options
    ViewModel Indentifier 关联的ViewModel的标识,可指定。
    Dispose On Destroy 若勾选上, View被销毁是,ViewModel也被销毁。
    Initialize ViewModel 是否自己来初始化ViewModel属性值。

  • Bindings
    每一个绑定都会生成对应的方法在ViewBase类里。
    有一些方法(TODO)

  • Execution Order
    For Views instantiated at runtime
    Awake > OnEnable > PreBind > Bind > AfterBind >InitializeViewModel > Start > Update loop begins
    For Views existing “SceneFirst” before runtime
    Awake > OnEnable > CreateModel > InitializeViewModel > Start (before base call) > PreBind > Bind >AfterBind > Start (after base call)
    When Destroying an object
    OnDisable > OnDestroy (before base.OnDestroy() call) >UnBind > OnDestroy (after base.OnDestroy() call)

View components

Enums

  • 用于定义新的属性类型给Elements使用。

Scene Types

  • 为了使用uFrame加载/卸载场景,必须使用Scene Types创建以便于给uFrame识别。
    可以定义怎样加载/卸载场景。
    可以多个场景共用一个Scene Types(有什么意义?案例中的选择关卡,多个关卡场景共用一个Scene Types)

  • Scene Types存在在一个场景的游戏入口,因为uFrame需要知道哪些场景被加载和保存 场景的引用,在需要移除场景时。

  • Scene Type Settings
    可以使用它来pass data给场景加载。

  • Generated Scene Types Scene Type是mono behaviour。让uFrame关联监听场景(当场景加载或被卸载时)。

  • Scene Loader
    一个Scene Type生成一个Scene Loader,交给uFrame Kernel管理。
    专门负责对应的Scene Type加载/卸载的一些功能。
    LoadScene() 对应 Unity’s LoadSceneAdditively()
    UnloadScene() 对应 the scene root game object is destroyed

  • Execution Order
    When you enter play mode, first executed will be the Start() method which is responsible for loading the kernel. You can override
    the KernelLoading() method to execute custom code before the kernel
    starts loading and the KernelLoaded() to execute custom code after
    the kernel finish loading.
    After the kernel is loaded, a SceneAwakeEvent is published. Read more in the Events page.
    SceneManagementService will receive this event, find a Scene Loader for the Scene Type and call its Load() coroutine.

Service Node

  • Service也是交给uFrame Kernel管理。
    可以写一些Commands和Events让Service订阅。
    字面上的意思,提供一些服务给其他节点。

Simple Classes(看文档)

  • 自定义的类。
    可作为Element的属性和command的参数。

Type References(看文档)

  • 可以指定新的类型在其他Nodes使用。
    不会被uFrame生成,要自己创建。
    一般在services配合handlers使用(大概)。

  • 自定义类型,不被uFrame创建

Command Node

  • 能被事件系统订阅。
    一般用来传递数据给Controller。

Computed Properties

  • 根据properties来计算得出另一些属性。比如血量少于0则得出死亡属性。

Element

  • ViewModels当需要时存在内存中。如果运行时View存在在场景中,它将会执行ViewCreatedEvent,ViewService将会匹配指定绑定的ViewModel,如果不存在则创建。大概只存在一个。

  • Creation And Initialization
    Creating a ViewModel with the Extension Method 在uframe 1.6中是通过额外的方法(使用正确的controller)创建ViewModel this.CreateViewModel()

Designer Overview

  • For instance, a PlayerView should probably exist on some kind of
    Player GameObject, and a PlayerHUDView should probably exist on some
    kind of GUI GameObject to bind to and express a player’s stats and
    other properties.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

javaee的杂乱笔记

  • 2016年01月17日 15:14
  • 5.87MB
  • 下载

杂乱笔记

节点流:概念:1.理解流的概念2.InputStream与OutputStream类3.FileInputStream与FileOutputStream类4.Reader与Writer类5.Piped...

Hibernate&Spring学习笔记(杂乱)

sessionFactory、hibernateTemplate、jdbcTemplate三种都是注入依赖的方式 主要目的是:在spring配置文件中把要调用的接口、设置、构造子配置给Bean (...

杂乱工作笔记的整理(一)

本无闲暇,奈何正在调试的gmr

web编程的纯理论个人杂乱的笔记

web编程的个人笔记整理 初次学到javaweb编程,感觉这个东西好强大,有点怕自己驾驭不了。在大学课堂上加上自己在网上找的学习资料一共学习了25天,总算是理清了一部分的概念!在次把最近做的笔记生成...
  • qsxbzch
  • qsxbzch
  • 2016年04月16日 21:49
  • 82

nginx笔记(杂乱版一)

nginx笔记(杂乱版一)网址:http://tengine.taobao.org/book/chapter_02.html#id1阅读源码,调试代码是一个非常重要的手段,非常快一般我们会设置与机器c...

杂乱笔记1

磁盘分区: 分区是通过设置一定量的块大小和扇区将文件系统格式化成硬盘特定区域的行为。分区能够预防接管系统的日志文件破坏操作系统,在一定条件下提供更好的安全 操作系统处于最底层basic level...

杂乱笔记-文字描述

web service: 也叫做 xml webservice 可以接收Internet或Internet上的其他系统中传递过来的请求 是通过SOAP在web上提供的软件服务使用WSDL文件进行说明并...

python学习笔记——杂乱篇

1.python每一行结束后不需要加分号,解释器根据行来区别句子。 2.在python中,^表示异或位运算,** 表示幂运算 3.标识符,以下划线开头是具有特殊意义的,以单下划线开头代表不能直接...

@码代码的张洋 两篇博客笔记 及一些杂乱笔记

归并排序递归版 void MergeSort(int* a, int low, int high, int* b)//Merge a[low...high] with space of b[] {...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uFrame 1.6杂乱笔记与一些翻译
举报原因:
原因补充:

(最多只允许输入30个字)