首页 > 其他分享 >(转)我所理解的Entitas——入门(一)

(转)我所理解的Entitas——入门(一)

时间:2023-06-13 15:23:20浏览次数:37  
标签:Jenny Entitas 生成 理解 ECS 版本 组件 入门

关于ECS框架
ECS框架被大家所熟知是源于2017年GDC大会上《守望先锋》针对他们关于ECS架构的做了一次技术分享,在此之前ECS框架只是并未被广泛使用和流传。和传统的OOP框架以类为基础将数据和逻辑放在类中处理的方式不同,ECS是以功能为基础,遵循组合优于继承的原则将功能分开处理。这样一个游戏物品有着什么功能取决与他有什么组件,其他关于ECS和传统框架的区别或者ECS的优点可以自行百度。这里主要介绍ECS的概念以便之后理解Entitas。

在ECS中每个基本单位都是一个实体,一个实体由N个组件组成。然后拥有相同组件的实体会被特定的系统处理特定的逻辑。E(ntity)——C(omponent)——S(ystem):

  Entity 实体,组件的载体本身并无意义,拥有什么功能完全取决于拥有什么组件。但是可以通过在游戏中增加或删除组件来改变实体的型为。
  Component 组件,包含了代表其对应特性的数据,所以组件中没有任何方法。
  System 系统,用来处理一个或多个具有相同组件的实体,即系统中没有任何数据。
例如一个物体有移动的特性,那么我们可能有SpeedComponent,DirectionComponent,PositionComponent三个组件分别用来表示速度,方向和位置,还有一个MoveSystem用来处理每帧的移动,那么拥有上面三个组件的实体都会具有移动功能,哪怕这个实体是一栋房子或者一座山。

Entitas

 

关于Entitas
Unity在2018年也发布了自己的ECS框架entities。而Entitas发布时间会比Unity的ECS框架发布的早的多。据说在2015年就已经发布,同时在Github上有着4K+的Star。我是项目需要才粗略研究了一下Entitas并在这里形成文档记录一下自己的学习笔记。

下载安装
官方发布了Github和AssetStore两个版本。AssetStore上的版本售价90$。望而却步选择了丐版(Github版本)。两个版本的区别在于AssetStore版本提供了Jenny插件,可以不依赖于Unity的编辑器生成代码。这样的好处是我们使用Github版本在开发过程中每次生成代码的时候必须没有语法错误。
下载地址:
Github版本 :https://github.com/sschmid/Entitas/releases
AssetStore版本 :https://assetstore.unity.com/?q=entitas&orderBy=1

下载后将压缩包中的Assets文件夹下的DesperateDevs和Entitas两个文件夹拷贝到项目的Assets文件夹中。然后等待Unity编译完成可以在菜单栏Tools下看到Jenny和Entitas两个按钮。

自动生成代码

  • 在菜单栏Tools->Jenny->Preferences打开Jenny的设置面板,如下:

  •  

  • 点击上图红色箭头指向的Auto Import按钮导入Jenny插件,然后上图会多出来几行。
  •  

  • 点击上图中红色箭头指向的Generate按钮。如果是新建的项目可能会有报错提示:
  •  

  • 这时候需要在项目的Assets同级检查一下是否有C#项目工程文件或者C#项目工程文件和下图标识的文件名称是否一直。如果没有只需要在VS或者其他编辑器打开一次项目。如果有但是名称不同只需要在下图的地方修改。然后重新点击Generate按钮生成代码。
  •  

  • 自动生成的代码会在Assets/Generated文件夹下:

 

Jenny设置面板

 

这里是Jenny生成代码的过程中的进度条显示或者AssetStore版本可以使用Jenny Server生成代码的进度条显示等其他的一些设置项,我没有深入了解。咱们可以不用管默认就行了。

 

  Project Path 刚才说了C#项目工程文件路径
  Target Directory 自动生成代码的路径。
  Assemblies 引用程序集的路径,这里的默认值也是Unity自动引用的路径,除非自己修改过
  Contexts 需要生成的上下文,后面会介绍上下文
  Ignore Namespaces 生成的代码文件名称是否忽略名称空间。
总结:这里主要介绍了一下ECS和Entitas框架。我就是将自己学习过程中的理解写下来,如果有错误的地方欢迎指正。
ECS框架也是短短几句话可以说清楚的。下面是觉得还不错参考:

浅谈《守望先锋》中的 ECS 构架  :https://blog.codingnow.com/2017/06/overwatch_ecs.html
ECS架构简介  :https://johnyoung404.github.io/2019/06/27/ECS%E6%9E%B6%E6%9E%84%E7%AE%80%E4%BB%8B/

 

标签:Jenny,Entitas,生成,理解,ECS,版本,组件,入门
From: https://www.cnblogs.com/wodehao0808/p/17477600.html

相关文章

  • vue中v-model理解
    1.原理v-model是语法糖,相当于以下代码<inputv-model="value>/>等价于<input:value="value"v-on:input="this.value=$event.target.value"/>v-bind:value实现数据从data->组件input触摸事件实现数据从组件->datav-model在内部为不同的输入元素使用不同的属性并抛......
  • Axure RP教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介AxureRP是一款专业的快速原型设计工具。Axure(发音:Ack-sure),代表美国Axure公司;RP则是RapidPrototyping(快速原型)的缩写。AxureRP是美国AxureSoftwareSolution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软......
  • AWS Lambda 教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介AWSLambda是AWS在2014年推出的「无服务器」(Serverless)计算服务,用户无需管理服务器,可以更专注自己业务。由于上手简单,而且真正利用了云的优势,Lambda快速成为了一项明星服务。Lambda在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和......
  • 理解ABR及其工作原理
    翻译|Alex技术审校|赵军本文来自OTTVerse,作者为KrishnaRaoVijayanagar。ABREasyTech#007#ABR表示AdaptiveBitrate(自适应码率),它广泛地描述了这样一个过程:视频和音频的质量和码率会根据当前网络状况的波动而发生自适应变化,以确保网络传输流畅。ABR明显不同于CBR(ConstantBitr......
  • python入门笔记
     pip批量安装#安装和卸载pipwheel-wpackage_tmp_dir-rrequirement.txtpipdownload-dpackage_tmp_dir-rrequirement.txt#离线下载pipinstall-rrequirement.txtpipuninstallpackage#安装源:pipinstall-ihttps://pypi.douban.com/simple/package_name......
  • this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)
    前言系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。this之谜揭底:从浅入深理解JavaScript中的this关键字(二)调用位置在理解this的绑定过程之前,首先要理解调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的......
  • 看懂这八大技术战役,你会理解今天的阿里
    “今天阿里巴巴已经变成一家技术公司。”在刚刚结束的阿里20周年年会上,马老师这样说,“阿里人明明有很好的路可以走,但是却选择没有人走过的路,但又必须要去走的路。”成为一家技术公司,大概是阿里做过的最跟自己过不去的决定。看懂阿里技术二十年的八大战役,也许你会理解今天的阿里。二......
  • 智慧医药安全管理解决方案助力医药监管实现重大突破
    智慧医药安全管理解决方案助力医药监管实现重大突破一、背景分析药品安全事关国计民生,一直以来都是公众最关心、最现实、最重视的大事。药品监管是人们安全食用药物的保护屏障,加大执行力度,提高监管能力,保障公众食用药品安全,提高全民健康水平,是医药监管部门的职责所在。本文主要分析......
  • MOS管基础知识:轻松理解MOS管工作原理
    MOS管是一种利用电场效应来控制其电流大小的半导体三端器件,很多特性和应用方向都与三极管类似。这种器件不仅体积小、质量轻、耗电省、寿命长、而且还具有输入阻抗高、噪声低、热稳定性好、抗辐射能力强等优点,应用广泛,特别是在大规模的集成电路中。根据导电沟道的不同,MOS管可分为......
  • MUSIC 直观理解
                  封底......