PackedScene

An abstraction of a serialized scene.

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 on Node). Note: The node doesn't need to own itself. Example of loading a saved scene:

More...

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Enums

Constants
enum Constants
GenEditState
enum GenEditState

Functions

_getBundledScene
Dictionary _getBundledScene()
_setBundledScene
void _setBundledScene(Dictionary arg0)
canInstance
bool canInstance()

Returns true if the scene file has nodes.

getState
Ref!SceneState getState()

Returns the SceneState representing the scene file contents.

instance
Node instance(long edit_state)

Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a constant Node.NOTIFICATION_INSTANCED notification on the root node.

opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(PackedScene other)
opEquals
bool opEquals(typeof(null) n)
pack
GodotError pack(Node path)

Pack will ignore any sub-nodes not owned by given node. See Node.owner.

toHash
size_t toHash()

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

_bundled
Dictionary _bundled [@property getter]
Dictionary _bundled [@property setter]

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.

Static functions

_new
PackedScene _new()

Construct a new instance of PackedScene. Note: use memnew!PackedScene instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Detailed Description

# Use load() instead of preload() if the path isn't known at compile-time. var scene = preload("res://scene.tscn").instance() # Add the node as a child of the node the script is attached to. add_child(scene)

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: var error = ResourceSaver.save("res://path/name.scn", scene) # Or "user://..." if error != OK: push_error("An error occurred while saving the scene to disk.")

Meta