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 文件夹下的表格 [email protected] 再在StartSceneConfig分页中添加一行内容
在这里插入图片描述

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

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

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


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

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


猜你喜欢

转载自blog.csdn.net/ww1351646544/article/details/141358613