实例¶
介绍¶
创建单个场景并将节点添加到其中可能对小项目有效,但随着项目的大小和复杂性的增加,节点的数量可能很快变得无法管理。为了解决这个问题,Godot允许将一个项目分成任意数量的场景。这为您提供了一个强大的工具,帮助您组织游戏的不同组件。
在 场景和节点 您了解到场景是以树结构组织的节点集合,其中一个节点作为树根。
您可以创建任意多个场景并将其保存到磁盘。以这种方式保存的场景称为“打包场景”,并且 .tscn
文件扩展名。
保存场景后,可以将其作为任何其他节点实例化到其他场景中。
在上图中,场景B作为实例添加到场景A中。
举例说明¶
要了解实例如何工作,我们先下载一个示例项目: instancing.zip
.
把这个项目解压到你喜欢的任何地方。然后打开godot并使用“导入”按钮将此项目添加到项目经理:
浏览到你提取的文件夹,打开你可以在里面找到的“project.godot”文件。完成此操作后,新项目将显示在项目列表中。按“编辑”按钮编辑项目。
这个项目包含两个场景:“ball.tscn”和“main.tscn”。球场景使用 RigidBody2D 当主场景有一组障碍物让球与之碰撞时提供物理行为(使用 StaticBody2D )
打开 Main
场景,然后选择根节点:
我们要添加 Ball
作为孩子的场景 Main
. 单击“链接”形按钮(其悬停文本显示“将场景文件作为节点实例”),然后选择 Ball.tscn
文件。
球将放在屏幕区域的左上角(这是 (0, 0)
在屏幕坐标中)。单击并将球拖动到场景顶部中心附近的某个位置:
按“播放”并观看球落在屏幕底部:
编辑实例¶
打开 Ball
场景并添加 PhysicsMaterial
单击向下箭头并选择“新建物理材质”。
然后,通过单击展开材质,并设置 Bounce
属性到 1
.
按“播放”并注意到所有实例化的球现在更有弹性。由于实例球基于保存的场景,因此对该场景的更改将影响所有实例。
您还可以调整单个实例。将反弹值设置回 0
然后在 Main
场景,选择一个实例球。像这样的资源 PhysicsMaterial
默认情况下在实例之间共享,因此我们需要使其唯一。单击向下箭头并选择“使唯一”。设置其 Bounce
到 1
然后按“播放”。
请注意,调整后的属性旁边会出现一个灰色的“还原”按钮。当此按钮存在时,意味着您修改了实例场景中的属性以覆盖其在保存的场景中的值。即使在原始场景中修改了该属性,自定义值也将保留。按“还原”按钮会将属性还原为保存的场景中的值。