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

Hérite de : Resource < RefCounted < Object

Une abstraction d'une scène sérialisée.

Description

Une interface simplifiée pour un fichier de scène. Fournit l'accès aux opérations et vérifications qui peuvent être faites sur la ressource de scène elle-même.

Peut être utilisé pour enregistrer un nœud dans un fichier. À l'enregistrement, le nœud tout comme tous les nœuds dont il est propriétaire sont enregistrés dans le fichier (voir la propriété Node.owner).

Note : Le nœud n'a pas besoin d'être son propre propriétaire.

Exemple : Chargement d'une scène enregistrée :

# Utiliser `load()` plutôt que `preload()` si le chemin n'est pas connu à la compilation.
var scene = preload("res://scene.tscn").instance()
# Ajouter un nœud comme enfant du nœud auquel le script est attaché.
add_child(scene)

Exemple : Enregistrement d'un nœud avec différents propriétaires. L'exemple suivant crée 3 objets : Node2D (node), RigidBody2D (body) et CollisionObject2D (collision). collision est un enfant de body qui est un enfant de node. Seul body est la propriété de node et pack() n'enregistrera alors que ces deux nœuds, mais pas collision.

# Créer les objets.
var node = Node2D.new()
var rigid = RigidBody2D.new()
var collision = CollisionShape2D.new()

# Créer la hiérarchie des objets.
rigid.add_child(collision)
node.add_child(rigid)

# Changer le propriétaire de `rigid`, mais pas de `collision`.
rigid.owner = node
var scene = PackedScene.new()

# Seulement `node` and `rigid` sont compactés.
var result = scene.pack(node)
if result == OK:
    var error = ResourceSaver.save("res://chemin/nom.scn", scene)  # Ou "user://..."
    if error!= OK:
        push_error("Une erreur est survenue à l'enregistrement de cette scène sur le disque.")

Tutoriels

Méthodes

bool

can_instantiate() const

SceneState

get_state() const

Node

instantiate(edit_state: GenEditState = 0) const

Error

pack(path: Node)


Énumérations

enum GenEditState: 🔗

GenEditState GEN_EDIT_STATE_DISABLED = 0

S'il est passé à instantiate(), bloque les modifications à l'état de la scène.

GenEditState GEN_EDIT_STATE_INSTANCE = 1

S'il est passé à instantiate(), fournit des ressources de scène locale à la scène locale.

Note : Seulement disponible dans les compilations de l’éditeur.

GenEditState GEN_EDIT_STATE_MAIN = 2

S'il est passé à instantiate(), fournit des ressources de scène locale à la scène locale. Seule la scène principale devrait recevoir l'état principal d'édition.

Note : Seulement disponible dans les compilations de l’éditeur.

GenEditState GEN_EDIT_STATE_MAIN_INHERITED = 3

C'est similaire à GEN_EDIT_STATE_MAIN, mais pour le cas où la scène est instanciée pour être la base d'une autre.

Note : Seulement disponible dans les éditeurs.


Descriptions des méthodes

bool can_instantiate() const 🔗

Renvoie true si le fichier de scène a des nœuds.


SceneState get_state() const 🔗

Renvoie le SceneState représentant le contenu du fichier de scène.


Node instantiate(edit_state: GenEditState = 0) const 🔗

Instantancie la hiérarchie du nœud de la scène. Déclenche l’instanciation des enfants de la scène. Déclenche une notification Node.NOTIFICATION_SCENE_INSTANTIATED sur le nœud racine.


Error pack(path: Node) 🔗

Compacte le nœud path, et tous les sous-nodes lui appartenant, dans cette PackedScene. Les données existantes seront effacées. Voir Node.owner.