Deep RL 课程文档
(可选) 如何自定义环境
并获得增强的文档体验
开始入门
(可选) 如何自定义环境
如果您想自定义游戏关卡,请打开关卡场景 res://scenes/level.tscn
,然后在 Godot 文件系统中打开 res://scenes/modules/
文件夹

该关卡包含 3 个使用模块、机器人和一些额外的碰撞器制作的房间,这些碰撞器阻止了通过爬上第一个房间的墙壁并以这种方式到达钥匙来完成关卡的能力。通过将模块添加到场景中,您可以添加新的房间和物品。
如果您单击 Key 节点(它在 Room3
中,您也可以搜索它),然后单击 Node > Signals
,您将看到 collected
信号已连接到机器人和箱子。我们使用它来跟踪机器人是否收集了钥匙,以及解锁箱子。相同的系统也应用于使用拉杆激活楼梯,如果您添加更多拉杆/楼梯/钥匙,您可以使用信号将它们连接起来。

如果您切换到 Groups
,您将看到钥匙是 resetable
组的成员。在同一组中,我们有木筏、拉杆、箱子、玩家,并且可以添加任何在剧集重置时需要重置的节点。

为了使其工作,resetable
组中的每个对象还需要实现 reset()
方法,该方法负责重置该对象。
因为我们有多个关卡场景实例用于训练,所以我们不会重置所有 resetables
,而只重置同一场景中的那些。在 level_manager.gd
中,我们有一个方法 reset_all_resetables()
负责执行此操作,并且在需要重置时由机器人脚本调用。
在更改关卡大小后,还需要更新 robot_ai_controller.gd
中的 level_size
变量。为此,只需粗略测量关卡的最长维度,并更新变量即可。
如果您更改了 AIController
需要跟踪的对象数量(拉杆、木筏等),您将需要在脚本中更新相关代码,包括这些对象的导出属性,然后在关卡场景的 AIController
的检查器属性中连接它们

在此之后,您可能还需要在演示记录场景中更新 AIController
的相同属性。