ET记录

2023-11-01  本文已影响0人  持刀的要迟到了

Bug - ET社区 (et-framework.cn)
小弟的ET笔记 (yuque.com)
e-mano 架构 et架构_mob6454cc64c0a4的技术博客_51CTO博客https://blog.51cto.com/u_16099188/6448617

初始化服务器
ET的核心方法:CodeLoader
服务器的App会生成在Bin目录下
首先,找到当前程序集的Model程序集加载。
然后,去Bin目录下生成的HotFix.dll文件加载程序集。
然后通过反射调用静态方法:Entry.StartAsync().Coroutine()
[MongoHelper].Register,注册可序列化的结构体
(LSInput:MemoryPackable;Unity.Mathematics.float2;TrueSync.FP:Serializable)
通过CodeTypes中缓存的对象类型,[BsonClassMap].LookupClassMap处理每一个类型。
添加单例,Awake单例:Id,网络协议,对象池,消息队列,网络服务,Nav,Log
Fiber.Init-> 服务端客户端跑了同一份逻辑
FiberInit_Main

Fiber

image.png

老版本:通讯序列化IO消耗等


新版本:共享进程的内存,不需要传递消息,并且Fiber带来了线程不会竞争内存的线程安全


image.png image.png
image.png
image.png
image.png

线程池性能更好;固定线程调试更方便

Scene

玩法结构设计


事件代码写法

1.在AllModel目录中定义事件。
服务器用的放在Server中,客户端用的放在Client中,共享的放在Share中。目前写客户端先都放Client。
增加脚本:xxxEventType。然后在里面定义结构体。

2.在AllHotfix目录中编写事件。
目录同上,写法很正常。PulishAsync发送,这里面就能接收到了。

登录7.0

Actor模型7.0

客户端结构

机器人客户端(伪客户端)

登录流程

ET EntitySystem

EntitySystemSingleton的Awake中通过反射注册所有的System类型。
首先找到,带[EntitySystem]标签的Class,其中大部分是生成的代码。
如果它继承自 IAwake, IDestroy, ILoad, ...等或自定义的ISystemType,
就会使用TypeSystems去创建或获取:OneTypeSystems,对应Max的QueueFlag,对应InstanceQueueIndex:None-1,Update0,LateUpdate1,Load2,...
然后把Entity类型和创建的System对象完成一对多的映射。然后如果这个System对象的QueueFlag不是带更新的,就是默认是None,那么就不设置QueueFlag。

Entity在被创建后,IsRegisted或者设置IScene,会调用到RegisterSystem。
如果Entity没有任何System,会返回。否则会记录。
如,第一个TimerCom,有IAwake和IUpdate。
在EntitySystem的RegisterSystem中,会完成,带QueueFlag的Update类型的增添。
在后面的Update中,它通过双向队列,完成对Disposed的Entity的移除。其他的都会保留在队列里被不断Update。

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

YIUI

插件:UIEffect

Loop列表制作

1.制作一个单独的页面,是Loop。


Publish

Win

1.安装.net环境
cmd: dotnet --info 弹出来说明装好了
2.打开ET工程,编译后发布




2.1ps发布:
双击PowerShell文件,生成一系列的Publish内容。包含.exe。全部拷贝到服务器电脑运行exe即可。

3.客户端连接配置:ConstValue修改地址为服务器外网地址
表格修改:
StartMachineConfig修改。有几个服务器,就部署几个,如果就只有一个,那就只填写一个。



Release

Win

说明1:编辑器下模拟打包环境:Define.IsEditor设置为false。
说明2:YIUI的资源名称是唯一的,因此要改一下熊猫的资源加载路径。

打包全流程,及作用。

上一篇下一篇

猜你喜欢

热点阅读