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

news2024/9/24 11:30:56

在这里插入图片描述

文章目录

  • 一、什么是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
在这里插入图片描述

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2090224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图机器学习实战:从数据源到可视化

《动手学图机器学习》并不是一本纯粹介绍图机器学习理论的著作,Alessandro Negro 博士作为科学家和 Reco4 公司的 CEO,长期维护图数据源的推荐系统。他结合机器学习工程和图机器学习方法,通过推荐引擎、欺诈检测和知识图谱等案例,…

【书生2.4】InternLM + LlamaIndex RAG 实践

InternLM LlamaIndex RAG 实践 1 环境安装2 材料准备3 还原实验4 更换问题验证rag 【Intern Studio的gpu不足。本实验使用自有服务器】 1 环境安装 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchau…

新160个crackme - 042-crackme

运行分析 提示需要key.dat文件 同目录下创建一个key.dat,提示key.dat内容不对 PE分析 C程序,32位,无壳 静态分析&动态调试 ida搜索字符串,找到关键字符串双击进入关键函数 对关键函数进行分析,注释如上当满足67行公…

信息安全数学基础(4)最大公因数

前言 在信息安全数学基础中,最大公因数(Greatest Common Divisor, GCD)是一个核心概念,它在密码学、数论等多个领域都有广泛应用。以下是对最大公因数的详细阐述: 一、定义 设a和b是两个非零整数,若整数d同…

论文阅读——Compact Single-Feed Dual-Mode Antenna for Active RFID Tag Application

文章目录 摘要一、天线设计A. 天线结构B. 天线演进 二、天线仿真与测试总结 论文来源:https://ieeexplore.ieee.org/document/7247651 摘要 文章提出了一种用于主动射频识别(RFID)标签应用的紧凑型单馈双模天线。该天线由一个位于FR4基板上的…

【读点论文】Scene Text Detection and Recognition: The Deep Learning Era

Scene Text Detection and Recognition: The Deep Learning Era Abstract 随着深度学习的兴起和发展,计算机视觉发生了巨大的变革和重塑。场景文本检测与识别作为计算机视觉领域的一个重要研究领域,不可避免地受到了这波革命的影响,从而进入…

ARM32开发——(二十一)ADC系统工作原理

1. ADC硬件结构 内部结构简化框图 2. ADC转换模式 2.1 单次转换,非扫描模式 2.2 连续转换,非扫描模式 2.3 单次转换,扫描模式 2.4 连续转换,扫描模式 3. 规则组和注入组 4. ADC数据对齐 5. ADC转换时间 总转换时间采样时间12 个 CK_ADC 周期 6. ADC内部校准 ADC有一个内置自…

前端速通面经八股系列(六)—— Vue(下)

接上ueue Vue下篇 四、路由1. Vue-Router 的懒加载如何实现2. 路由的hash和history模式的区别1. hash模式2. history模式3. 两种模式对比 3. 如何获取页面的hash变化4. $route 和$router 的区别5. 如何定义动态路由?如何获取传过来的动态参数?6. Vue-rou…

读书笔记:《深入理解Java虚拟机》(2)

Java内存区域与内存溢出异常 Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里 面的人却想出来。 对于从事C、C程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”&#xf…

[Leetcode 435][Medium]-无重叠区间-贪心

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 题目地址 二、整体思路 要求移除区间的最小个数,也就是要求使得剩余区间互不重叠的最大区间数。 可以先将区间按右端点的值进行升序排序,然后遍历数组,在此基础上保留左端点>最小右端点的值…

【C++ Primer Plus习题】7.7

问题: 解答: #include <iostream> using namespace std;#define SIZE 10double* fill_array(double* begin, double* end) {for (begin; begin < end; begin){cout << "请输入值:";cin >> *begin;if (cin.fail()){cout << "非法数字…

PCIE-校验和纠错

各种编码&#xff1a; &#xff08;1&#xff09;ECRC/LCRC (为什么需要ECRC?) &#xff08;3&#xff09;PCRC&#xff08;Plaintext CRC&#xff0c;纯文本 CRC&#xff09;&#xff1a;是 IDE TLP 中的概念&#xff0c;在大多数方面&#xff0c;PCRC的计算方法与ECRC相…

【论文阅读】为大规模航空图像应用神经辐射场

【论文阅读】为大规模航空图像应用神经辐射场 ABSTRACTI. INTRODUCTIONV. EXPERIMENTSA. Evaluations on the entire datasetsA.1. State-of-the-Art comparisonA.2. Cloud-to-Cloud comparisonA.3. Accuracy and completeness B. Evaluations on the selected regionsB.1. Fi…

时序预测相关论文阅读笔记

笔记链接&#xff1a; 【有道云笔记】读论文&#xff08;记录&#xff09;https://note.youdao.com/s/52ugLbot用于个人学习记录。

Python-MNE-源空间和正模型07:修复BEM和头表面

有时在创建BEM模型时&#xff0c;由于可能出现的一系列问题(例如&#xff0c;表面之间的交叉)&#xff0c;表面需要手动校正。在这里&#xff0c;我们将看到如何通过将表面导出到3D建模程序blender&#xff0c;编辑它们&#xff0c;并重新导入它们来实现这一点。我们还将给出一…

峟思大坝安全监测系统:科技筑牢工程稳定的基石

在全球工程建设的宏伟蓝图中&#xff0c;大坝安全始终占据着举足轻重的地位。随着科技的日新月异&#xff0c;大坝安全监测系统作为守护工程稳定的“哨兵”&#xff0c;正步入一个前所未有的创新与发展阶段。这一系统不仅是大坝健康管理的关键工具&#xff0c;更是确保民生安全…

使用pgdump、pgrestore迁移数据表到docker部署的postgis

将本地数据同步到内网服务器&#xff0c;使用的postgis&#xff0c;表含空间字段 备份 本地使用pgadmin 4进行备份&#xff0c;pgrestore的命令参数找起来麻烦&#xff0c;这个可以界面操作&#xff0c;比较方便 说明 说明的截图来自pgadmin&#xff0c;点击这个打开 …

搭建数据库启前后端环境

1、 安装postgre&#xff0c;修改pg_hba.conf文件 2、安装dbeaer 3、任务管理器-服务&#xff1a;查看是否启动postgresql-x64-11 4、连接测试&#xff1a;新建数据库连接 http://127.0.0.1:14269/browser/# pgAdmin等于dbeaver 5、创建数据库&#xff1a; 6、启动后端…

数博会 | 百度智能云千帆大模型数据安全解决方案获优秀科技成果

8月28日&#xff0c;由国家数据局主办、贵州省人民政府承办的2024中国国际大数据产业博览会在贵阳盛大开幕。期间&#xff0c;2024中国国际大数据产业博览会领先科技成果发布会在贵阳国际生态会议中心举行。百度智能云千帆大模型数据安全解决方案&#xff0c;凭借大模型全生命周…

可信捐赠系统的设计与开发论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统可信捐赠系统信息管理难度大&#xff0c;容错率低&#x…