地牢结构
概述
进入地牢
大厅
地牢层数
离开地牢
模块结构
地牢实例 Dungeon Instance
DungeonInstance.c
地牢实例包含该地牢的所有层的地图 Uworld 并且在玩家加载地牢时动态地生成在场景中并由DungeonHandler 管理,当玩家退出地牢时该实例会被 DungeonHandler 摧毁.
地牢实例并非指向单一玩家,而是由整个世界管理器和地牢管理器共同管理, 若为团体地牢则多个玩家可以进入同一个地牢实例中
ChildDungeonsWorlds
该数组存储地牢实例的所有地图模板, index 0
指向的是 地牢大厅/准备场所
ChildDungeonsWorldsInstance
该数组存储当前地牢实例加载的世界实例, 地牢加载的世界实例应当与世界管理器中也存在一份引用并且在地牢实例摧毁时也应该在世界管理器中摧毁
DungeonInstancePlayerData
存储玩家当前在这个地牢实例中的探索进度, TMap
的第一个元素是玩家对象,第二个元素是当前地牢层数
在最初版本地牢中不提供额外的房间比如说购买或者功能性房间, 要拓展这部分内容需要对玩家在地牢中探索的数据结构进行更换
地牢处理器 Dungeon Handler
DungeonHandler.c
地牢处理器 存储游戏加载的 地牢实例 ,每当玩家创建新的地牢时地牢处理器会加载地牢实例到 LoadedDungeonInstances
中并通知世界管理器加载当前玩家探索地牢层的世界地图随时准备展示到玩家视野中. 当地牢内所有玩家退出或地牢关闭/失效时, 地牢处理器则会首先通知世界管理器移除该地牢实例所加载的地牢地图并在移除完毕后再移除地牢实例.
Last updated