首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Unity的"MonoBehaviour组件“是否等同于实体-组件-系统设计模式中的系统?

Unity的"MonoBehaviour组件“是否等同于实体-组件-系统设计模式中的系统?
EN

Stack Overflow用户
提问于 2018-06-01 05:16:21
回答 2查看 602关注 0票数 2

我正在做一个非常简单的2D游戏引擎,我正在重做我的实体,使其工作起来有点像Unity的系统。我一直在研究实体-组件-系统设计模式(ECS)是如何工作的,我开始更好地理解它。

据我所知,ECS中的组件只能保存数据,除了保留这些数据之外,不能做任何事情。然后,系统使用这些组件来读取和操作它们的数据。

这让我产生了疑问:在Unity中附加到GameObject上的MonoBehaviour脚本在技术上是否是系统,而不是在Unity编辑器中调用的组件?

如果我错了,我认为这将有助于我分析ECS的真正实现。我是用Java编码的,所以如果有人有任何用Java或C#实现的ECS系统的例子,那就太好了,因为我见过的大多数例子都是用C++写的,这对我来说更难理解。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 06:38:35

Unity并不严格地通过ECS工作,尽管使用了术语“组件”。统一组件,以MonoBehaviour的形式,可以同时具有数据和系统逻辑。Unity will, in future versions, be rolling out an ECS model

如果你想使用当前的Unity版本(2018.1及更低版本)并严格遵循ECS方法论,我建议你研究一下Entitas and their Unity Plugin。您还可以选择构建代码、资产和场景的结构,以符合ECS原则,但Entitas非常高效,可以为您解决许多问题。

票数 2
EN

Stack Overflow用户

发布于 2022-03-02 07:02:32

基于面向对象的设计思想,将单声道系统统一起来,称为实体-组件(entity-component)。ECS(entity-component-system)是基于面向数据设计。单声道组件中既有数据又有逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50632898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档