ET6框架(五)ECS组件式编程

2024-08-30 09:12
文章标签 组件 编程 框架 ecs et6

本文主要是介绍ET6框架(五)ECS组件式编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 一、什么是ECS:
  • 二、ECS编程原则:
  • 三、组件生命周期:


一、什么是ECS:

ECS即Entity、Component、System的简称,遵循组合优于继承的原则
Entity(实体) : 实体是一个概念,是指存在你游戏世界中的一个独立物体,是一系列组件的集合。
Component(组件) : 一个组件是堆数据的集合,不存在行业,只用于储存状态。
System(系统) : 一个系统就是对拥有或多个相同组件的操作工具,只有行为没有状态也不做存储。

(切记:切勿与Unity Dots中的ECS进行混淆,两者没有一点关系)


二、ECS编程原则:

1.实体即是组件,组件即是实体。
2.如要编写一个新的实体或组件,绝不继承除了Entity之外的任何父类。
3.绝对不使用任何虚函数,使用逻辑分法代替。
4.Model和ModelView只存实体和组件的数据字段声明,非必要绝不放任何逻辑函数。
5.Hotfix和HotfixView中只保留纯逻辑函数,也就是使用静态类和扩展方法编写的System,且绝不允许存放任何数据及字段。
6.Model和Hotfix中绝不允许出现跟Unity3d引擎相关的游戏对像类和调用相关的API函数。
7.如实体或组件有数据字段志明必须编写相关生命周期函数,以防实体对像池回收再利用导至逻辑错误。
在这里插入图片描述


三、组件生命周期:

我可以可以尝试在Unity.Model模块的Codes > Model > Demo > Computer(自行创建) 中创建Computer.cs脚本
在这里插入图片描述

在脚本中编写组件,在组件中可编写:
组件需要继承:Entity,后面分别是生命周期接口IAwake,IUpdate,IDestroy
在这里插入图片描述

在Unity.Hotfix模块Core > Hotfix > Computer(自行创建) 中创建脚本 ComputerSystem
在Start函数中可以添加组件,然后需要添加载ComputerAwakeSystem、ComputerUpdateSystem、ComputerDestorySystem
分别继承AwakeSystem,UpdateSystem,DestroySystem
在这里插入图片描述

在Unity.HotfixView 模块中 Demo > UI > UILogin > AppStartInitFinish_CreateLoginUI.cs脚本中
该脚本在开始登录界面初始化完成后执行
可以调用Start()及Dispost()函数
在这里插入图片描述

再在工程中选择Tools > Build > BuildCodeDebug
在这里插入图片描述

编译成功后运行程序
在这里插入图片描述


这篇关于ET6框架(五)ECS组件式编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120398

相关文章

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB