
Entitas
文章平均质量分 75
RuntimeCube
这个作者很懒,什么都没留下…
展开
-
[Unity Entitas] CookBook 典型的例子Hello world[10]
“Hello world”就是一个典型的例子,用来说明手头技术的主要好处。对于编程语言,人们使用一个将 Hello World 输出到控制台的小程序。对于我看到的大多数 ECS 实现,从 MoveSystem 开始。翻译 2022-08-13 19:52:47 · 400 阅读 · 0 评论 -
[Unity Entitas] CookBook 响应式系统Reactive System[9]
响应式系统是一个只有在我们需要处理实体时才会被调用的系统。在内部,响应式系统使用收集器实例(有关更多信息,请参阅收集器章节)。作为用户,您需要扩展一个抽象类 ReactiveSystem。该系统的目的是销毁标有 Destroyed 组件的实体。正如您在 GetTrigger 方法中看到的,我们返回一个收集器,它监视一组已销毁的实体。...翻译 2022-08-13 19:23:49 · 197 阅读 · 0 评论 -
[Unity Entitas] CookBook 系统System[8]
ECS 或面向数据的设计的主要目标是分离状态形式的行为。系统是我们定义行为的地方。在系统中,我们可以编写创建新状态、更改给定状态或破坏状态的代码。在 Entitas-CSharp 中,我们必须实现多个接口才能将类标记为系统。ISystem 接口是一个基础接口,我们不必自己实现。它只是内部使用的标记(所谓的幽灵协议)。如果我们想有一个应该定期执行的系统,我们需要实现 IExecuteSystem。...翻译 2022-08-11 22:18:04 · 200 阅读 · 0 评论 -
[Unity Entitas] CookBook 索引Index[7]
这也是我们推荐的,当您需要存储从一个实体到另一个实体的引用时(更多内容请参见 ingredience 章节)。当我们开始创建实体并向它们添加组件时,它们将开始进入组,并且索引将被通知添加了具有以下组件的实体。它获取前一个组件,因此它可以从 HashMap 中删除条目,如果我们用另一个组件替换它,它将再次接收带有新值的添加事件。你可能需要一个更复杂的,你想在一个范围内获取实体,或者有一个更复杂的索引键。在这个片段中,我们要求上下文为我们提供位置上的所有实体,其中“输入”受到影响,我们过滤掉非交互的实体。...翻译 2022-08-11 21:13:59 · 194 阅读 · 0 评论 -
[Unity Entitas] CookBook 收集器Collector[6]
在这个例子中,我们定义我们想要收集所有移除GameBoardElement组件的实体。在内部,收集器将要求一组包含GameBoardElement组件的实体。它将自己订阅组事件并保留对将离开组的实体的引用列表,因为我们对Removed事件感兴趣。即使我们再次向它添加GameBoardElement组件,它仍然会保持收集状态,并且它会再次添加到组中。您可能不会单独使用它,但它仍然是Entitas非常重要的成分。可以激活和停用收集器,以便我们可以停止和恢复对组的观察。...翻译 2022-08-02 08:46:54 · 172 阅读 · 0 评论 -
[Unity Entitas] CookBook 组[5]
ECS典型的“HelloWorld”就是所谓的“movesystem”。移动系统是一个系统,它采用所有具有位置和速度分量的实体并交换该实体上的位置分量,有效地将其移向速度矢量。当我们意识到这个实体上有什么样的其他组件并不重要时,AHA时刻就到来了。它可以是人、狗、汽车、直升机或房子。如果它具有位置分量和速度分量,则必须移动它。...翻译 2022-08-01 23:29:36 · 103 阅读 · 0 评论 -
[Unity Entitas] CookBook 上下文Context[4]
上下文是实体的管理数据结构。实体不能单独创建,必须通过context.CreateEntity()创建。这样,上下文可以管理我们创建的所有实体的生命周期。它也是第一个在我们操作实体时收到通知的观察者(参见实体章节中的实体观察部分)。...翻译 2022-08-01 23:13:57 · 201 阅读 · 0 评论 -
[Unity Entitas] CookBook 实体[3]
引用计数是一种内部机制,可确保实体在不再被引用之前不会被重用。当您保留对实体的引用时,您必须调用entity.Retain(this);当需要删除引用时,调用entity.Release(this);很重要。这些调用增加和减少引用计数。Entitas-CSharp的所有内部类都尊重这种机制,你的代码也应该如此。如果您在保留对实体的引用时不调用Retain,您最终可能会保留对已被销毁并重生为其他实体的实体的引用。...翻译 2022-07-31 23:21:42 · 144 阅读 · 0 评论 -
[Unity Entitas] CookBook 组件[2]
组件是ECS中最简单的成分。它是数据的原子表示。它可以是空的,具有一个或多个属性,甚至可以标记为唯一。在下文中,我将解释关于Entitas-CSharp的差异。翻译 2022-07-31 23:07:38 · 430 阅读 · 0 评论 -
[Unity Entitas] CookBook 介绍[1]
Hi,我的名字是Maxim,我是一名软件开发人员。2012年底,我在柏林的休闲游戏工作室Wooga工作时偶然发现了ECS(实体组件系统)和Entitas(ECS的实现)。从那以后,我帮助改进了Entitas并将其移植到不同的语言,并自己用它构建了几个游戏和应用程序。老实说,写这本书不是我的主意。Entitas-CSharp社区的优秀人士将我推向了这个方向,并承诺在此过程中提供帮助。由于这是我写的第一章,我仍然希望能得到一些帮助。...翻译 2022-07-31 22:32:55 · 241 阅读 · 0 评论