ET6框架(六)Scene层级树

在这里插入图片描述


一、什么是Scene

Scene为层级树的根节点,本质上还是一个Entity,Entity下也可以挂载其他Entity,也可以像树节点一样多层次挂载。
无论挂载多少层Entity,Entity实体的Domain指代的就是Entity当前层次结果中的根节点Scene.

Entity的Zone则代表当前所在Scene的逻辑索引Id,在服务器端可以被 当做区服的索引ID
需要注意的是,Domain返回的是当前Scene的根节点,如在自己创建的CurrentScene下调用则拿到CurrentScene.
如想确定拿到ZoneScene,则可以使用ZoneScene函数
在这里插入图片描述


二、客户端Scene层级关系

GameScene : 用于提供游戏客户端的全局且必要的基础功能组件(如 : 资源管理组件,配置组件,计时组件等.)
ZoneScene : 用于提供游戏中玩家的全局游戏业务功能逻辑(如 : UI 背包 等…)
CurrentScene : 代表玩家的Unit当前所在的地图场景,一般用于挂载当前场景相关组件。场景切换时会被回收重新创建
在这里插入图片描述


三、ET框架Demo中客户端的的Scene结构

打开Unity.MovelView > Codes > ModelView > Demo > Entry.cs
在这里插入图片描述

打开Entry.cs函数后我们会发现这里调用了AppStart函数事件
在这里插入图片描述

在处理AppSart的类AppStart_Init中我们会发现这里为Game.Scene添加了很多基础组件
在这里插入图片描述

在Unity.Model > Codes > Entity > Game.cs 的Scene方法中可以看到GmaeScene的创建
是一个懒汉式单例式创建
在这里插入图片描述

创建完Game.Scene挂载载组件后,再在下面创建zoneScene再发出AppStartInitFinish事件,并发出ZoneScene
在这里插入图片描述

在AppStartInitFinish_CreateLoginUI中可以看到有AEvent<EventType.AppStartInitFinish>由此类处理AppStartInitFinish事件
可以看到我们在此函数下生成及挂载自己的组件
在这里插入图片描述

我们使用AddChild函数将Component挂载再ZoneScene下
而将其余组件使用AddComponent挂载在自定义的实体下
需要注意的区别是使用ZoneScene可挂载多个相同组件,而自定组件下每个相同组件只能挂载一个。
当ZoneScene被释放时,其身上所被挂载的组件都将被释放


四、服务器端的的Scene结构

GameScene : 类似与客户端用于挂载必备组件
ZoneScene : 则用于挂载作用于Scene范围的游戏功能
通过自定SceneType和修改Excel配置,就可以启动不同类型的Scene,为服务器进程添加不同的功能。
Scene可能在游戏开服前配置好在不同的进程中启动时创建,也可以在有限不运行时动态 创建Scene
同时也可以对Scene进行动态销毁
在这里插入图片描述


五、ET框架Demo中服Scene是如何创建的

在Server中 Server.Hotfix > AppStart_Init.cs中可以看和客户端一个的方式创建GameScene,在GameScene中创建了Scene,跟进Create中…
在这里插入图片描述
我们可以在SceneFactory中看根据不同的SceneType类似创建了Scene后添加不同的组件
在这里插入图片描述

我们添加SceneType.Account(新增类型),并为其添加NetKcpComponent组件
打开ET > Excel 文件夹下的表格 StartSceneConfig@s.xlsx 再在StartSceneConfig分页中添加一行内容
在这里插入图片描述

回到代码,先编译Client-Server
在这里插入图片描述

再来到ET > Excel 表中点击win_startExcelExport.bat 进行编译
在这里插入图片描述

此时运行Server服务器ZoneScene则会被创建出来


六、服务器机器人Scene的层级关系

不同于其他语言前后端语言不一致的游戏服务器架构,需要服务器端开发人员自己编写服务器端压力测试逻辑。
ET框架完全可以通过调用游戏逻辑的接口完全模拟玩家操作。
RobotZoneScene等同于ZoneScene,一个RobotZoneScene代表着一个玩家,以此进行压力测试。
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小盖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值