Class PackedScene
An abstraction of a serialized scene.
- Inheritance
-
PackedScene
Remarks
A simplified interface to a scene file. Provides access to operations and checks that can be performed on the scene resource itself.
Can be used to save a node to a file. When saving, the node as well as all the nodes it owns get saved (see owner property).
Note: The node doesn't need to own itself.
Example: Load a saved scene:
# Use load() instead of preload() if the path isn't known at compile-time.
var scene = preload("res://scene.tscn").instantiate()
# Add the node as a child of the node the script is attached to.
add_child(scene)
Example: Save a node with different owners. The following example creates 3 objects: Node2D (node
), RigidBody2D (body
) and CollisionObject2D (collision
). collision
is a child of body
which is a child of node
. Only body
is owned by node
and PackedScene.pack will therefore only save those two nodes, but not collision
.
# Create the objects.
var node = Node2D.new()
var body = RigidBody2D.new()
var collision = CollisionShape2D.new()
# Create the object hierarchy.
body.add_child(collision)
node.add_child(body)
# Change owner of `body`, but not of `collision`.
body.owner = node
var scene = PackedScene.new()
# Only `node` and `body` are now packed.
var result = scene.pack(node)
if result == OK:
var error = ResourceSaver.save(scene, "res://path/name.tscn") # Or "user://..."
if error != OK:
push_error("An error occurred while saving the scene to disk.")
See Also
Methods
can_instantiate
Qualifiers: const
Returns true
if the scene file has nodes.
bool can_instantiate
get_state
Qualifiers: const
Returns the SceneState representing the scene file contents.
SceneState get_state
instantiate(int)
Qualifiers: const
Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a NOTIFICATION_SCENE_INSTANTIATED notification on the root node.
Node instantiate(int edit_state)
Parameters
edit_state
int
pack(Node)
Packs the path
node, and all owned sub-nodes, into this PackedScene. Any existing data will be cleared. See owner.
int pack(Node path)
Parameters
path
Node