Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

PackedScene

Eredita: Resource < RefCounted < Object

Un'astrazione di una scena serializzata.

Descrizione

Un'interfaccia semplificata per un file di scena. Fornisce accesso alle operazioni e alle verifiche che possono essere eseguite sulla risorsa di scena stessa.

Può essere utilizzato per salvare un nodo in un file. Durante il salvataggio, il nodo e tutti i nodi posseduti da esso sono salvati (vedi la proprietà Node.owner).

Nota: Il nodo non deve possedere se stesso.

Esempio: Carica una scena salvata:

# Usa load() invece di preload() se il percorso non è noto in fase di compilazione.
var scene = preload("res://scene.tscn").instantiate()
# Aggiunge il nodo come figlio del nodo a cui è associato lo script.
add_child(scene)

Esempio: Salva un nodo con proprietari diversi: L'esempio seguente crea 3 oggetti: Node2D (node), RigidBody2D (body) e CollisionObject2D (collision). collision è un figlio di body che è un figlio di node. Solo body è posseduto da node e pack() salverà quindi solo quei due nodi, ma non collision.

# Crea gli oggetti.
var node = Node2D.new()
var body = RigidBody2D.new()
var collision = CollisionShape2D.new()

# Crea la gerarchia degli oggetti.
body.add_child(collision)
node.add_child(body)

# Cambia il proprietario di `body`, ma non di `collision`.
body.owner = node
var scene = PackedScene.new()

# Solo `node` e `body` sono ora impacchettati.
var result = scene.pack(node)
if result == OK:
    var error = ResourceSaver.save(scene, "res://path/name.tscn")  # Or "user://..."
    if error != OK:
        push_error("Si è verificato un errore durante il salvataggio della scena su disco.")

Tutorial

Metodi

bool

can_instantiate() const

SceneState

get_state() const

Node

instantiate(edit_state: GenEditState = 0) const

Error

pack(path: Node)


Enumerazioni

enum GenEditState: 🔗

GenEditState GEN_EDIT_STATE_DISABLED = 0

Se passato a instantiate(), blocca le modifiche allo stato della scena.

GenEditState GEN_EDIT_STATE_INSTANCE = 1

Se passato a instantiate(), fornisce risorse di scena locali alla scena locale.

Nota: Disponibile solo nelle build dell'editor.

GenEditState GEN_EDIT_STATE_MAIN = 2

Se passato a instantiate(), fornisce risorse di scena locali alla scena locale. Solo la scena principale dovrebbe ricevere lo stato di modifica principale.

Nota: Disponibile solo nelle build dell'editor.

GenEditState GEN_EDIT_STATE_MAIN_INHERITED = 3

È simile a GEN_EDIT_STATE_MAIN, ma per il caso in cui la scena viene istanziata per essere la base di un'altra.

Nota: Disponibile solo nelle build dell'editor.


Descrizioni dei metodi

bool can_instantiate() const 🔗

Restituisce true se il file di scena contiene nodi.


SceneState get_state() const 🔗

Restituisce il SceneState che rappresenta il contenuto del file di scena.


Node instantiate(edit_state: GenEditState = 0) const 🔗

Crea un'istanza della gerarchia dei nodi della scena. Attiva le istanziazioni delle scene figlio. Attiva una notifica Node.NOTIFICATION_SCENE_INSTANTIATED sul nodo radice.


Error pack(path: Node) 🔗

Impacchetta il nodo path e tutti i suoi sottonodi posseduti in questo PackedScene. Tutti i dati esistenti saranno cancellati. Vedi Node.owner.