Skip to content

基础概念

本文档将介绍ETOfflineToolkit中同时也可以适用于ET的核心概念。

什么是ETOfflineToolkit?

简介

ETOfflineToolkit是一个专注于单机游戏开发的衍生于ET框架的一个工具包,它继承了ET Framework的优秀设计理念,为开发者提供了一套完整的开发工具集。

核心特性

  • 单机特化: 基于Unity 双端 ET框架剥离出来的单机部分
  • 架构设计: 完整保留了ET框架强大的核心架构设计和开发理念
  • 功能丰富: 保留了ET EUI框架中EUI系统、对象池、资源管理等强大功能
  • 开发友好: 对于想用ET开发单机游戏的开发者来说,是一个理想的选择

ECS架构设计

什么是ECS?

ECS(Entity-Component-System)是一种专注于数据驱动的架构模式,它将游戏对象拆分为三个核心概念:

  • 实体(Entity): 游戏中的基本对象,仅包含一个唯一标识符
  • 组件(Component): 附加在实体上的纯数据,定义实体的属性和状态
  • 系统(System): 处理特定组件组合的逻辑单元,负责游戏逻辑的执行

ECS树状结构设计

ET的这种设计数据是一种树状的结构,非常有层次,能够非常轻松的理解整个游戏的架构。顶层Game.Scene也就是Root,不同模块的数据都挂载在Root上面,Root可以接着挂Scene也就是称之为CurrentScene,每个模块自身下面又可以挂载很多数据。每开发一个新功能不用思考太多,类该怎么设计,数据放在什么地方,挂载这里会不会导致冗余等等。

数据结构设计图

简介

ET框架采用了一种清晰的树形结构设计,这种设计使得游戏架构层次分明,便于管理和扩展。

整体结构

Root
├── UIComponent
│   ├── MainUI
│   └── UIXXX
├── CurrentScene
│   ├── UIComponent
│   │   ├── FightUI
│   │   └── UIXXX
│   └── UnitComponent
│       ├── Unit1
│       ├── Unit2 (挂载 MoveComponent)
│       └── Unit3 (挂载 AIComponent)
└── UnitComponent
    ├── Unit1
    ├── Unit2
    └── Unit3

核心节点说明

Root(根节点)

Root节点

  • 作为整个场景树的根节点
  • 管理全局性的组件和系统
  • 可以挂载多个顶级组件

UIComponent(UI组件)

UI管理

  • 负责管理所有UI相关的内容
  • 可以存在于Root和CurrentScene层级
  • Root下的UIComponent管理全局UI
  • CurrentScene下的UIComponent管理场景相关UI

CurrentScene(当前场景)

场景管理

  • 代表当前活动的游戏场景
  • 包含场景特有的UI和单位
  • 作为场景相关组件的容器

UnitComponent(单位组件)

单位管理

  • 管理场景中的所有游戏单位
  • 可以存在于Root和CurrentScene层级
  • 支持挂载具体功能组件(如MoveComponent、AIComponent)

设计优势

架构优点

  1. 层次清晰

    • 树形结构直观易懂
    • 组件关系一目了然
    • 便于理解和维护
  2. 扩展性强

    • 可以方便地添加新组件
    • 支持动态挂载和卸载
    • 灵活的组件组合
  3. 管理便捷

    • 统一的组件管理方式
    • 清晰的生命周期控制
    • 方便的组件查找和访问
数据结构设计图

组件生命周期

节点移除

  • 如果某个实体或者组件被移除(Dispose)则其下面所有的组件和子实体也会进行移除(Dispose)
  • 被移除的组件会触发相应的Dispose回调

技术支持

获取帮助

  • 💬 加入QQ群讨论交流(ET框架群) : 474643097
  • ⭐ 在GitHub上关注项目获取最新更新

Released under the MIT License.