1.官方文档

https://docs.unity3d.com/Packages/com.unity.tiny@0.13/manual/intro-for-unity-developers.html

2.Tiny ECS 与传统 Unity 的区别

  • Unity一个工程一个项目,而Tiny目前是包括在Unity工程里的,一个工程里可以有多个项目,通过双击 .utproject 可以打开新的Tiny项目

  • Unity可以使用传统的EC(实体组件)开发模式,也能用ECS,但Tiny强制使用ECS模式

  • Unity的分为一个一个的Scene,每个Scene里又包含N多的GameObject,每个GameObject上又包括N多的组件,而Tiny,取代Scene的是EntityGroups,取代GO的是Entity,Entity上同样挂着N多的组件

  • Unity的组件,可以有数据,有逻辑,一个GameObject可以挂载多个同样的组件,而Tiny,组件仅仅包括数据,不能有逻辑,而且一个Entity只能由一个同样类型的组件

  • Tiny可以同时存在多个EntityGroups,而Unity只能同时存在一个Scene(但在编辑器模式下可以打开多个Scene同时编辑),EntityGroups的文件后缀是 .utdata

3.ECS

组件:仅仅包含数据,是一个一个的结构体

实体:是组件的集合

系统:不关心实体,仅仅关注它订阅的组件,然后在循环里处理这些组件

4.ECS中的System

在Tiny里,System并不需要像旧版Unity一样挂载后才会启动,只要项目里存在System脚本,就会在游戏启动后自动运行。

若要设置不同的System的运行时序,则需要在类前用属性标签指明:

例如,TypeScript里是这样的:

@ut.executeAfter(ut.Shared.UserCodeStart)
@ut.executeBefore(ut.Shared.UserCodeEnd)
export class CircleMovement extends ut.ComponentSystem {

其中有一个特殊的类叫 “Fences”,栅栏基本上是系统执行图中的空节点:它们不执行逻辑,但是您可以使用它们来调度系统,而不知道游戏中的其他系统。

  1. InputFence
  2. UserCodeStart
  3. UserCodeEnd
  4. RenderingFence
  5. PlatformRenderingFence

这种用法很像旧的Unity里的各种Start,Enable,OnRender之类的

Unity Tiny & ECS 学习笔记的更多相关文章

  1. 【Unity Shaders】学习笔记——SurfaceShader(十一)光照模型

    [Unity Shaders]学习笔记——SurfaceShader(十一)光照模型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5664792.html ...

  2. 【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射

    [Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水 ...

  3. 【Unity Shaders】学习笔记——SurfaceShader(九)Cubemap

    [Unity Shaders]学习笔记——SurfaceShader(九)Cubemap 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以 ...

  4. 【Unity Shaders】学习笔记——SurfaceShader(八)生成立方图

    [Unity Shaders]学习笔记——SurfaceShader(八)生成立方图 转载请注明出处:http://www.cnblogs.com/-867259206/p/5630261.html ...

  5. 【Unity Shaders】学习笔记——SurfaceShader(七)法线贴图

    [Unity Shaders]学习笔记——SurfaceShader(七)法线贴图 转载请注明出处:http://www.cnblogs.com/-867259206/p/5627565.html 写 ...

  6. 【Unity Shaders】学习笔记——SurfaceShader(六)混合纹理

    [Unity Shaders]学习笔记——SurfaceShader(六)混合纹理 转载请注明出处:http://www.cnblogs.com/-867259206/p/5619810.html 写 ...

  7. 【Unity Shaders】学习笔记——SurfaceShader(五)让纹理动起来

    [Unity Shaders]学习笔记——SurfaceShader(五)让纹理动起来 转载请注明出处:http://www.cnblogs.com/-867259206/p/5611222.html ...

  8. 【Unity Shaders】学习笔记——SurfaceShader(四)用纹理改善漫反射

    [Unity Shaders]学习笔记——SurfaceShader(四)用纹理改善漫反射 转载请注明出处:http://www.cnblogs.com/-867259206/p/5603368.ht ...

  9. 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert

    [Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...

随机推荐

  1. Docker-Docker-compose应用

    Docker-compose是用来定义和运行多容器应用的工具,它是独立于docker存在的,需要单独安装.实际应用场景中,我们的应用可能被打包运行在不同的容器里面,例如一个常规的web应用可能会涉及到 ...

  2. 从0开始的Python学习014面向对象编程

     简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象 ...

  3. Failure sending mail: The user or group name 'xxx\xxxx' is not recognized.Mail will not be resent

      一批Reporting Service报表的订阅突然报如下错误: Failure sending mail: The user or group name 'xxx\xxxx' is not re ...

  4. Java 控制结构与方法

    控制结构: 控制结构是对我们程序执行顺序的一种控制,它规定了我们语句块的执行顺序和流程. 分支结构: 关系运算符和逻辑运算符: 关系运算符:== != > >= < <=逻辑运 ...

  5. lua_local变量在new时不会被清空

    前言 我的运行环境 Lua5.3 按照我们以往的Java或C#编程经验,如果一个class被new,那么这个class中所有成员变量的值都是默值或是构造函数中赋的值,但在Lua中的local变量却并不 ...

  6. PowerShell或命令行运行javac xx.java提示“编码GBK的不可映射字符”

    由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内 ...

  7. Tomcat调试404错误

    开篇附上我找到的部分解决方法摘自:https://blog.csdn.net/psp0001060/article/details/51879232 如不想跳转查看,链接内容如下: 问题一:      ...

  8. Linux下安装Nginx并配置一个图片服务器

    首先安装nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没 ...

  9. NW.js使用及打包

    简介 NW.js (原名 node-webkit)是一个结合了 Chromium 和 node.js 的应用运行时,通过它可以用 HTML 和 JavaScript 编写原生应用程序.它还允许开发者从 ...

  10. Python Scrapy突破反爬虫机制(项目实践)

    对于 BOSS 直聘这种网站,当程序请求网页后,服务器响应内容包含了整个页面的 HTML 源代码,这样就可以使用爬虫来爬取数据.但有些网站做了一些“反爬虫”处理,其网页内容不是静态的,而是使用 Jav ...