理解 DOTS - ECS - 编程思想(基础入门)

本文介绍了DOTS、ECS和JobSystem在Unity中的编程思想转变,传统面向对象编程导致的问题以及如何通过组件、实体和系统解决。组件仅存储数据,实体是组件的集合,系统负责操作相关组件,实现游戏逻辑。这种方式提高了效率,允许动态改变实体属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自Unity Connect博主 郡墙

这是一篇关于 DOTS\ ECS \JobSystem相关的小白转换编程思想

实现游戏实体的传统方式是使用面向对象的编程。每个实体都是一个对象,可以直观地允许基于类的实例化系统,并使实体可以通过多态性扩展其他实体。 这导致了庞大而僵化的类层次结构。随着实体数量的增加,在层次结构中放置新实体变得越来越困难,尤其是在该实体需要大量不同类型的功能的情况下。 举个栗子

image

需要实现一类怪物为 邪恶的树。在这个编程模式里,不论是继承哪边都会存在设计上的冲突或者冗余。 为了解决这个问题,我们通过组合模式来代替继承的设计来构建实体。实体只是组件的“集合“与上述面向对象的体系结构相比,这具有一些主要优点:

  • 便于添加新的复杂实体

  • 便于在数据中定义新实体

  • 更高效

组件 - Component

image

组件可以类比 C语言的结构。它没有方法,只能存储数据,不能对其进行操作。在典型的实现中,每种不同的组件类型都将从抽象的Component类派生,该类提供了在运行时获取组件的类型并包含实体的工具。每个组件都描述实体的某个方面及其参数。组件本身几乎没有任何意义,但是当与实体和系统结合使用时,它们将变得非常强大。空组件对于标记实体很有用。 例如:

  • Position (x, y)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值