UE4虚幻引擎结构

虚幻引擎结构图如下:

UE4虚幻引擎结构


    从上图可以可看出,一个游戏实例对象GameInstance包含一个UWorld和一个GameMode对象。UWorld下包含1NLevel GameMode下管理着ControllerGameStatePlayerStatePawn等对象。

    一般来说,我们直观感受GameMode对象应该属于Level管理的,不应该和UWorld平行放置,因为在UE4的编辑器里面,每个level下的WorldSettings才有设置GameMode的选项。

    我的理解是:在UE的世界里,World更多是逻辑的概念,是玩法;而Level是资源,是表。所以我们如果以逻辑来划分游戏,得到的就是一个个World的概念;如果以表示来划分,得到就是一个个Level。一场游戏中,玩法再复杂但也只有一个,场景却可以无限大,所以可以有很多个Level组成一个完整的游戏,因此是World包含Level,而不是反过来

    通常的,我们的游戏比较简单的用一个Level就够了,也因此通常的这里的Level也常常对应游戏里玩家面对的"关卡",因此UELevelSettings叫做WorldSettings

    那GameMode为什么不放在UWorld下面呢?因为GameMode负责制定游戏的规则,也就是应该如何玩游戏,遵守哪些规则,是和UWorld一起合作,而不是从属关系。那么自然也就应该并立显示了。