TIPS:
本系列贴仅用于博主学习ET框架的记录


文章目录

  • 前言
  • 一、ET框架中的ECS是什么?
  • 二、ET框架的ECS编程思想用法
    • 1.创建ECS中的实体Entity及组件Component
    • 2.创建ECS中的系统System
    • 3.给实体添加组件
  • 总结

前言

今天来学习OOP以外的另一种编程思想—ECS。


一、ET框架中的ECS是什么?

ECS:实体(Entity)、组件(Component)、系统(System),同时在框架中(实体即组件、组件即实体)类似电脑是一个实体,键盘是电脑的一个组件,但同时键盘也是一个实体,因为其下面还有按键这种组件。

二、ET框架的ECS编程思想用法

1.创建ECS中的实体Entity及组件Component

(1)打开ET目录下的Client-Server.sln,在Client/Unity.Model/Codes/Model/Demo文件夹下新建一个Computer文件夹。

(2)在Computer文件夹下新建一个Computer类命名空间为ET且继承Entity及IAwake接口,注意:实体只能继承Entity,如果继承Entity以外的其他类,就不是ET正规军(狗头保命)同时实体里面不能有任何的逻辑代码(好像是)。

代码如下(示例):Computer.cs

namespace ET
{public class Computer:Entity, IAwake{}
}

(3)同时也新建电脑所需的一些组件,例如电源、显示屏,同时命名空间也为ET且继承Entity及IAwake接口,使用[ComponentOf(typeof(Computer))]来说明这个组件是在Computer实体下的组件。

代码如下(示例):KeyboardComponent.cs

namespace ET
{[ComponentOf(typeof(Computer))]public class MonitorsComponent: Entity,IAwake{}
}

代码如下(示例):PCCaseComponent.cs

namespace ET
{[ComponentOf(typeof(Computer))]public class PCCaseComponent: Entity, IAwake{}
}

2.创建ECS中的系统System

(1)打开ET目录下的Client-Server.sln,在Client/Unity.Hotfix/Codes/Hotfix/Demo文件夹下新建一个Computer文件夹。

(2)在Computer文件夹下新建一个ComputerSystem类,且是静态的,实体逻辑代码写在System里)。

代码如下(示例):ComputerSystem.cs

namespace ET
{public static class ComputerSystem{public static void Start(this Computer self){Log.Debug("computer start....");//下面这两行获取组件要在实体添加了组件后才能获取到self.GetComponent<PCCaseComponent>().Power();self.GetComponent<MonitorsComponent>().Display();}}
}

(3)同时也给Computer的PCCaseComponent、MonitorsCompoent建立System。

代码如下(示例):MonitorsComponentSystem.cs

namespace ET
{public static class MonitorsComponentSystem{public static void Display(this MonitorsComponent self){Log.Debug("display show....");}}
}

代码如下(示例):PCCaseComponentSystem.cs

namespace ET
{public static class PCCaseComponentSystem{public static void Power(this PCCaseComponent self){Log.Debug("start power!!!");}}
}

3.给实体添加组件

(1)打开Client/Unity.HotfixView/Codes/HotfixView/Demo文件夹下的AfterCreateZoneScene_AddComponent.cs文件。

(2)在Run方法的末尾创建Computer实体及添加组件。

代码如下(示例):AfterCreateZoneScene_AddComponent.cs

Computer computer = zoneScene.AddChild<Computer>();
computer.AddComponent<PCCaseComponent>();
computer.AddComponent<MonitorsComponent>();
computer.AddComponent<MouseComponent>();
computer.AddComponent<KeyboardComponent>();
computer.Start();

(3)保存代码回到Unity编辑器点击键盘上的F5建等待Unity编译通过即可运行。


总结

理解ET框架中的ECS编程思想来说还是相对简单的。

02-ET框架的ECS编程思想相关推荐

  1. 框架设计:浅谈ECS设计思想(一)

    从一开始的面向过程编程,再到后来面向对象编程.随着硬件性能的不断改进,用户对软件应用的要求也水涨船高.愈发庞大的应用不再是一个人或几个人的小团队能够完成的呢,分工愈来愈明显,逼迫着编程思想不断进步. ...

  2. 框架开发与编程模式编程思想的结合

    自己开发的框架要满足以下条件: 1 简单,用了这个框架可以使开发周期大幅缩短,如果用框架还不如不用框架开发的简单.那么这个框架就是垃圾. 2,可拆分,框架中的任何一个有机部分都可以单独拿出来使用.而不 ...

  3. Java编程思想 第四版 读书笔记巩固基础,完善知识框架。

    Java编程思想读书笔记 此笔记仅仅是作者的阅读此书时,发现自己错误认识和不牢固的知识,用来完善作者的知识框架,其列出重点不具有参考性,代码也是为了省工作量,简写代码,能看懂即可,语法并不规范 第一章 ...

  4. 游戏设计模式——面向数据编程思想

    前言:随着软件需求的日益复杂发展,远古时期面的向过程编程思想才渐渐萌生了面向对象编程思想. 当人们发现面向对象在应对高层软件的种种好处时,越来越沉醉于面向对象,热衷于研究如何更加优雅地抽象出对象. 然 ...

  5. 嵌入式牛人 | 这些单片机编程思想超硬核

    来源:面包板社区,整理:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 01 裸编程是什么? 先声明一个概念,裸编程,指的是在裸机上编写程序,裸机,在单片机领域就是指带着硬件的单片机控制系 ...

  6. Unity手游实战:ECS设计思想和Entitas插件

    Unity手游实战:ECS设计思想和Entitas插件 一.ECS设计思想 ECS设计理念并不是一个新兴的事物,早在90年代就存在了.但是走入大众视野则要归功于<守望先锋>这款游戏.201 ...

  7. Java编程思想第四版学习总结

    Java编程思想第四版学习总结 文章目录 Java编程思想第四版学习总结 第 1 章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重 ...

  8. 在java中三种编程思想(OOA,OOD,OOP)

    在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...

  9. 小马哥spring编程核心思想_求小马哥讲Spring栈核心编程思想 Spring IoC+Bean+Framework教程...

    这次搜集了下小马哥讲Spring栈核心编程思想 Spring IoC+Bean+Framework,最强Spring全面核心实战的视频教程,有需要的朋友可以自行下载学习. 课程简介: 小马哥出手的Sp ...

最新文章

  1. h5 bootstrap 小程序模板_一道面试题小程序与H5的区别
  2. java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】
  3. python的环境变量设置
  4. redis java api 单例_Java API 操作Redis
  5. 2-4MySQL数据库安装与初始化
  6. tp5ajax即点即改,TP5中即点即改,json分页,单删
  7. 【更新】火星人敏捷开发手册2012-02-24新增敏捷计划内容
  8. Excel在表格框中插入对勾✅
  9. 鸿蒙系统源码获取_Hi3861_HI3516DV编译环境搭建记录
  10. 防火墙基本应用(华为USG6000V)
  11. 计算机一级安装包怎么升级,详细教您win7如何升级为sp1
  12. c语言实验:厘米换算英尺英寸
  13. 计算机网络重置,怎么重置电脑网络连接
  14. 作战效能评估系统模型
  15. excel 查找图相框或文本框中的内容
  16. 编译和安装gdb源码详细步骤介绍
  17. 没有鼠标就无法对计算机进行操作,电脑鼠标不灵敏是什么原因?怎么解决?
  18. 热门在线项目管理工具
  19. 项目管理之项目的挣值计算问题
  20. cubeIDE开发, UART的CubeMX及HAL库实现原理及底层分析

热门文章

  1. opencv-检测人脸区域
  2. 【Git 使用】- Git 连接远程仓库
  3. 基于Yolov5的玻璃瓶盖缺陷检测
  4. 反相/同相放大电路中平衡电阻的作用
  5. Python模拟浏览器登录淘宝
  6. PERTII型管/聚氨酯保温管如何安装施工
  7. Excel中VLOOKUP函数单,多条件查找index与match
  8. 服务治理,服务发现,服务注册
  9. js在控制台输出菱形
  10. ups计算软件_天津柏克机电工程师解答:什么是后备式UPS不间断电源