Entitas

C#源码 2025-08-14

Entitas是免费的,但由您的捐款提供支持

Entitas C#和Unity的实体组件系统框架

Entitas是最受欢迎的开源实体组件系统框架(ECS),是专门为C#和Unity制作的。已经做出了一些设计决定,以在收集的垃圾环境中最佳工作,并轻松在垃圾收集器上进行。 Entitas带有一个可选的代码生成器,该代码生成器从根本上减少了您必须编写的代码数量,并使您的代码像书面散文一样读取。

为什么Entitas

  • #1 GitHub上的开源EC
  • 根据MIT许可证的100%开源
  • 不和谐的伟大而有用的社区
  • 易于学习且易于使用
  • 在没有团结的纯C#独立项目中运作良好
  • 带有一个很棒的团结集成,称为视觉调试
  • 在爆米花(Rollic / Zynga / Take两次),Gram Games,Wooga,Plarium,Storm Chaser等公司进行战斗测试

视频教程和Unity Unite Talks

视频标题资源
Entitas ecs unity教程 - git&单位测试
Entitas ecs Unity教程 - 设置和基础知识
Unite Europe 2016:ECS建筑与团结一致Slideshare:Unite Europe 2016
Unite Europe 2015:团结的实体系统体系结构Slideshare:Unite Europe 2015

第一次瞥见

可选的代码生成器使您可以编写超快速,安全且字面意图的代码。

 var entity = context . CreateEntity ( ) ;
entity . AddPosition ( Vector3 . zero ) ;
entity . AddVelocity ( Vector3 . forward ) ;
entity . AddAsset ( "Player" ) ; 
 using static GameMatcher ;

public sealed class MoveSystem : IExecuteSystem
{
    readonly IGroup < GameEntity > _group ;

    public MoveSystem ( GameContext context )
    {
        _group = context . GetGroup ( AllOf ( Position , Velocity ) ) ;
    }

    public void Execute ( )
    {
        foreach ( var e in _group . GetEntities ( ) )
            e . ReplacePosition ( e . position . value + e . velocity . value ) ;
    }
}

概述

Entitas很快,轻巧,摆脱了不必要的复杂性。您需要知道的少数课程要启动您的游戏或应用程序:

  • 语境
  • 实体
  • 成分
  • 团体
Entitas ECS +-----------------+ | Context | |-----------------| | e e | +-----------+ | e e--|----> | Entity | | e e | |-----------| | e e e | | Component | | e e | | | +-----------+ | e e | | Component-|----> | Component | | e e e | | | |-----------| | e e e | | Component | | Data | +-----------------+ +-----------+ +-----------+ | | | +-------------+ Groups: | | e | Subsets of entities in the context | | e e | for blazing fast querying +---> | +------------+ | e | | | | e | e | e | +--------|----+ e | | e | | e e | +------------+">
 Entitas ECS

+-----------------+
|     Context     |
|-----------------|
|    e       e    |      +-----------+
|       e      e--|----> |  Entity   |
|  e        e     |      |-----------|
|     e  e     e  |      | Component |
| e          e    |      |           |      +-----------+
|    e     e      |      | Component-|----> | Component |
|  e    e    e    |      |           |      |-----------|
|    e    e     e |      | Component |      |   Data    |
+-----------------+      +-----------+      +-----------+
  |
  |
  |     +-------------+  Groups:
  |     |      e      |  Subsets of entities in the context
  |     |   e     e   |  for blazing fast querying
  +---> |        +------------+
        |     e  |    |       |
        |  e     | e  |  e    |
        +--------|----+    e  |
                 |     e      |
                 |  e     e   |
                 +------------+

阅读更多...

代码生成器

代码生成器为您生成类和方法,因此您可以专注于完成工作。它从根本上减少了您必须编写的代码量,并提高了可读性的大小。它使您的代码易于错误,同时确保最佳性能。

阅读更多...

团结整合

可选的Unity模块“ Visual Debugging”将Entitas良好地集成到Unity中,并提供强大的编辑器扩展程序来检查和调试环境,组,实体,组件和系统。

阅读更多...


深入Entitas

阅读Wiki或Checkout示例项目,以查看正在行动中的Entitas 。这些示例项目说明了系统,群体,收藏家和实体如何无缝地播放。

»下载并设置

»视频教程和Unity Unite Talks

»Wiki和示例项目

»问一个问题


下载和Entitas

GitHub发布(推荐)

显示版本

Unity软件包管理器

即将推出

nuget

Entitas和所有依赖项可作为Nuget软件包可用。更详细的解释即将推出。

Unity Asset Store(弃用)

Unity Asset Store上的Entitas已弃用,并且将不再更新。 Asset Store上的最后一个版本为1.12.3,可以免费下载。请参阅讨论7岁的Entitas - 现在是免费的

由于

向@mzaks,@cloudjubei和@devboy大声喊叫,以进行无休止的讨论,并帮助使Entitas很棒!

维护者

  • @sschmid | @s_schmid | @ Entitas _csharp

不同的语言?

Entitas可用

  • C#
  • C ++
  • 克洛杰尔
  • 水晶
  • Erlang
  • F#
  • 哈斯克尔
  • 爪哇
  • 科特林
  • Objective-C
  • Python
  • Scala
  • 迅速
  • 打字稿
下载源码

通过命令行克隆项目:

git clone https://github.com/sschmid/Entitas.git