PackedScene
继承
简要描述
序列化场景的抽象。
描述
场景文件的简化接口。
可用于将节点保存到文件。
注意:节点不需要自己拥有。
保存具有不同所有者的节点的示例:以下示例创建3个对象:Node2D
(node
), RigidBody2D
(rigid
) 和 CollisionObject2D
(collision
). collision
是rigid
的子级,而rigid
是node
的子级。 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} |
方法
返回值类型 | 方法名称 |
---|---|
bool | can_instance() const |
SceneState | get_state() |
Node | instance(edit_state: int = 0) const |
int | pack(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.