java - 在 Java 中存储 ECS 的组件
问题描述
我正在使用 ECS(实体组件系统)在 java 中创建一个网络游戏,这是我第一次使用 ECS。我不确定我应该如何存储组件。我确实想使用一个实体类,我将在其中存储该特定实体的组件,但是如何?我是否应该从基类扩展所有组件并将它们存储在数组列表中?我应该使用集合吗?我基本上只是问是否有人对如何做到这一点有任何建议?谢谢。
解决方案
您可能想看看 Unity 是如何做到的。这里有一些词汇可以帮助您进行研究。
Unity使用块来存储组件的原型。这些组件存储在这些块内的内存对齐数组中,以获得更好的缓存性能。您还可以查看 Unity 的 ECS 源代码(存储在他们的“实体”包中),这可以向您展示他们如何存储和访问组件数据。
推荐阅读
- java - \s 实际上并没有捕获所有空白字符
- webpack - Webpack'ing "sass" (dart-sass),使用需要动态、硬代码依赖到上下文?
- java - 单选按钮在滚动时搞砸了
- jsf - 验证错误后视图更新不正确
- html - 用网页上的 vba 按下表格内的链接
- angular - 角度测试并在 e2e 中出错
- node.js - 使用 node.js 进行 Soap Web 服务监控、遥测和指标
- javascript - 如何循环遍历数组并向vue.js中的所有对象添加属性
- connection-pooling - 使用“动态”连接池连接极光 rds 无服务器
- angular - Universal 不呈现 HTTP 调用