PackedScene
Inherits: Resource < Reference < Object
Category: Core
Brief Description
An abstraction of a serialized scene.
Properties
Dictionary | _bundled |
Methods
bool | can_instance ( ) const |
SceneState | get_state ( ) |
Node | instance ( GenEditState edit_state=0 ) const |
Error | pack ( Node path ) |
Enumerations
enum GenEditState:
- GEN_EDIT_STATE_DISABLED = 0 — If passed to instance, blocks edits to the scene state.
- GEN_EDIT_STATE_INSTANCE = 1 — If passed to instance, provides local scene resources to the local scene. Requires tools compiled.
- GEN_EDIT_STATE_MAIN = 2 — If passed to instance, provides local scene resources to the local scene. Only the main scene should receive the main edit state. Requires tools compiled.
Description
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 node it owns get saved (see owner
property on Node). Note that the node doesn’t need to own itself.
Example of saving a node with different owners: The following example creates 3 objects: Node2D
(node
), RigidBody2D
(rigid
) and CollisionObject2D
(collision
). collision
is a child of rigid
which is a child of node
. Only rigid
is owned by node
and pack
will therefore only save those two nodes, but not collision
.
# create the objects
var node = Node2D.new()
var rigid = RigidBody2D.new()
var collision = CollisionShape2D.new()
# create the object hierarchy
rigid.add_child(collision)
node.add_child(rigid)
# change owner of rigid, but not of collision
rigid.owner = node
var scene = PackedScene.new()
# only node and rigid are now packed
var result = scene.pack(node)
if result == OK:
ResourceSaver.save("res://path/name.scn", scene) # or user://...
Property Descriptions
- Dictionary _bundled
A dictionary representation of the scene contents.
Available keys include “rnames” and “variants” for resources, “node_count”, “nodes”, “node_paths” for nodes, “editable_instances” for base scene children overrides, “conn_count” and “conns” for signal connections, and “version” for the format style of the PackedScene.
Method Descriptions
- bool can_instance ( ) const
Returns true
if the scene file has nodes.
- SceneState get_state ( )
Returns the SceneState
representing the scene file contents.
- Node instance ( GenEditState edit_state=0 ) const
Instantiates the scene’s node hierarchy. Triggers child scene instantiation(s). Triggers a Node.NOTIFICATION_INSTANCED notification on the root node.
Pack will ignore any sub-nodes not owned by given node. See Node.owner.