Entitas-CSharp

授权协议 MIT License
开发语言 C/C++
所属分类 游戏/娱乐、 游戏模拟器/工具/引擎
软件类型 开源软件
地区 不详
投 递 者 韦思淼
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Entitas is free, but powered by your donations

Entitas - The Entity Component System Framework for C# and Unity

Entitas is a super fast Entity Component System Framework (ECS) specifically made for C# and Unity. Internal caching and blazing fast component access makes it second to none. Several design decisions have been made to work optimal in a garbage collected environment and to go easy on the garbage collector. Entitas comes with an optional code generator which radically reduces the amount of code you have to write and makes your code read like well written prose.


» Download

» Documentation

» Ask a question

» Wiki and example projects

» #madeWithEntitas


Video Tutorials & Unity Unite Talks

Entitas ECS Unity Tutorial Entitas ECS Unity Tutorial Entity system architecture with Unity ECS architecture with Unity by example
Setup & Basics Git & Unit Tests » Open the slides on SlideShare: Unite Europe 2015 » Open the slides on SlideShare: Unite Europe 2016

First glimpse

The optional code generator lets you write code that is super fast, safe and literally screams its intent.

public static GameEntity CreateRedGem(this GameContext context, Vector3 position) {
    var entity = context.CreateEntity();
    entity.isGameBoardElement = true;
    entity.isMovable = true;
    entity.AddPosition(position);
    entity.AddAsset("RedGem");
    entity.isInteractive = true;
    return entity;
}
var entities = context.GetEntities(Matcher<GameEntity>.AllOf(GameMatcher.Position, GameMatcher.Velocity));
foreach(var e in entities) {
    var pos = e.position;
    var vel = e.velocity;
    e.ReplacePosition(pos.value + vel.value);
}

Overview

Entitas is fast, light and gets rid of unnecessary complexity. There are less than a handful classes you have to know to rocket start your game or application:

  • Entity
  • Context
  • Group
  • Entity Collector

Read more...

Code Generator

The Code Generator generates classes and methods for you, so you can focus on getting the job done. It radically reduces the amount of code you have to write and improves readability by a huge magnitude. It makes your code less error-prone while ensuring best performance. I strongly recommend using it!

Read more...

Unity integration

The optional Unity module integrates Entitas nicely into Unity and provides powerful editor extensions to inspect and debug contexts, groups, entities, components and systems.

Read more...


Entitas deep dive

Read the wiki or checkout the example projects to see Entitas in action. These example projects illustrate how systems, groups, collectors and entities all play together seamlessly.

Download Entitas

Each release is published with zip files containing all source files you need.

Show releases

Thanks to

Big shout out to @mzaks, @cloudjubei and @devboy for endless hours of discussion and helping making Entitas awesome!

Maintainer(s)

Different language?

Entitas is available in

  • 断断续续2个月完成了自己的游戏demo,却有种删除整个项目的冲突,架构太混乱,已经完全不想加东西,加一个功能就会因为发现自己之前留了太多屎,到后面不得不为之前的屎埋坑,必须做出改变。我需要学习一下其他人的代码和架构,查找了一下github几个star比较高的unity框架,发现了它——Entitas,最近知乎unity讨论比较热乎的ECS架构。 那么就玩玩吧,反正我一个学生党很闲很作,而且多学学也

  • 接下来第二篇教程。主要是教我们如何在Entitas下使用组件表示游戏状态,以及其他系统如何响应用户输入执行相应逻辑。 官方教程 https://github.com/sschmid/Entitas-CSharp/wiki/Unity-Tutorial—Simple-Entity-View-and-Movement 完全按教程做就能将demo跑起来,注意要将camera的Projection属性设为

  • 第三个教程 -实现一个多反应系统 教程地址 https://github.com/sschmid/Entitas-CSharp/wiki/MultiReactiveSystem-Tutorial 配置 打开之前的Entitas编辑器,就是之前用来generate的那个。 在那个Jenny->Context 配置Game, Input, Ui,然后generate 加入教程所说的DestroyedC

  • 英文原文: https://github.com/mzaks/EntitasCookBook   上下文是实体的管理数据结构。实体不能单独创建,必须通过 context.CreateEntity() 创建。这样,上下文可以管理我们创建的所有实体的生命周期。它也是第一个在我们操作实体时收到通知的观察者(参见实体章节中的实体观察部分)。 实体对象池   为了避免垃圾回收,Entitas-CSharp

  • 英文原文: https://github.com/mzaks/EntitasCookBook   实体只是一袋组件。我们可以向实体添加组件,可以从实体中获取组件,也可以从实体中移除组件。在 Entitas-CSharp 中,有一种内部/通用方式来执行这些操作: entity.AddComponent(index, component); entity.GetComponent(index); en

  • 英文原文: https://github.com/mzaks/EntitasCookBook Hi,   我的名字是 Maxim,我是一名软件开发人员。 2012 年底,我在柏林的休闲游戏工作室 Wooga 工作时偶然发现了 ECS(实体组件系统)和 Entitas(ECS 的实现)。从那以后,我帮助改进了 Entitas 并将其移植到不同的语言,并自己用它构建了几个游戏和应用程序。   老实说,

 相关资料
  • 本文向大家介绍asp.net中CSharpThinking扩展方法分析,包括了asp.net中CSharpThinking扩展方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net中CSharpThinking扩展方法。分享给大家供大家参考。具体分析如下: 一、演变 ① 扩展方法特征 1)必须在一个静态方法中。 2)至少有一个参数。 3)第一个参数必须附加this关键字作为

  • 我在amazon keyspace中创建了一个keyspace(表),并试图将记录从它获取到运行在Ubuntu中的.NET核心应用程序。我已经提供了aws文档中提到的“.pem”文件用户名、密码和awsEndpoint,以编程方式访问amazon keyspace时使用了Cassandra.NET核心客户端驱动程序 但是,当我运行代码并试图连接amazon keyspace时,它会引发异常“所有主

  • 我使用mongo csharp驱动程序版本1.9.1。但是,我有这个dll的问题。例外情况是: "无法加载文件或程序集'MongoDB. Bson, Version=1.9.1.221,区域性=中性, PublicKeyToken=f686731cfb9cc103'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常: 0x80131040)":"MongoDB. Bs

  • 本客户端改进自 ctripcorp/cat.net 改动点: 支持异步调用: 使用AsyncLocal替换原先的 ThreadLocal(线程上下文,不支持async/await) 支持异步并发调用;需要显示调用 Cat.NewForkedTransaction("remote", "<>")开启新的调用上下文。 Sample: # 并行调用 var tasks = Enumerable.Ran

相关阅读

相关文章

相关问答

相关文档