跳到主要内容

PackedScene

继承

Resource

简要描述

序列化场景的抽象。

描述

场景文件的简化接口。

可用于将节点保存到文件。

注意:节点不需要自己拥有。

保存具有不同所有者的节点的示例:以下示例创建3个对象:Node2D (node), RigidBody2D (rigid) 和 CollisionObject2D (collision). collisionrigid的子级,而rigidnode的子级。 node仅拥有rigid,而pack将仅保存这两个节点,而不保存collision

# 创建对象
var node = Node2D.new()
var rigid = RigidBody2D.new()
var collision = CollisionShape2D.new()

# 创建对象层次结构
rigid.add_child(collision)
node.add_child(rigid)

# 更改rigid的所有者,但不更改collision的所有者
rigid.owner = node

var scene = PackedScene.new()
# 现在仅打包node和rigid
var result = scene.pack(node)
if result == OK:
ResourceSaver.save("res://path/name.scn", scene) # Or "user://..."

成员

类型属性名默认值
Dictionary_bundled{"conn_count": 0,"conns": PoolIntArray( ),"editable_instances": [],"names": PoolStringArray( ),"node_count": 0,"node_paths": [],"nodes": PoolIntArray( ),"variants": [],"version": 2}

方法

返回值类型方法名称
boolcan_instance() const
SceneStateget_state()
Nodeinstance(edit_state: int = 0) const
intpack(path: Node)

枚举

enum GenEditState:

  • **GEN_EDIT_STATE_DISABLED = 0**

如果传递给instance,则将块编辑为场景状态。

  • **GEN_EDIT_STATE_INSTANCE = 1**

如果传递给instance,则将本地场景资源提供给本地场景。

注意:仅在编辑器版本中可用。

  • **GEN_EDIT_STATE_MAIN = 2**

如果传递给instance,则将本地场景资源提供给本地场景。

注意:仅在编辑器版本中可用。


常量

成员说明

  • Dictionary _bundled
Default{"conn_count": 0,"conns": PoolIntArray( ),"editable_instances": [],"names": PoolStringArray( ),"node_count": 0,"node_paths": [],"nodes": PoolIntArray( ),"variants": [],"version": 2}
setter_set_bundled_scene(value)
getter_get_bundled_scene

方法说明

  • can_instance can_instance() const

如果场景文件具有节点,则返回true


  • get_state get_state()

返回表示场景文件内容的SceneState


  • instance instance(edit_state: int = 0) const

实例化场景的节点层次结构。


  • pack pack(path: Node)

Pack将忽略给定节点不拥有的任何子节点。参见Node.owner.