PackedScene

Inherits: Resource < Reference < Object

类别: 核心

简要说明

系列化场景的抽象。

属性

Dictionary

_bundled

“conn_count”:0,“conns”:poolintarray(),“可编辑的_实例”: [ ] ,“名称”:PoolStringArray(),“节点数”:0,“节点路径”: [ ] “节点”:poolintarray(),“变量”: [ ] ,“版本”:2

方法

bool

can_instance ( ) const

SceneState

get_state ( )

Node

instance ( GenEditState edit_state=0 ) const

Error

pack ( Node path )

枚举

枚举 GenEditState

  • GEN_EDIT_STATE_DISABLED = 0 ---如果传递给 instance ,阻止对场景状态的编辑。

  • GEN_EDIT_STATE_INSTANCE = 1 ---如果传递给 instance ,为本地场景提供本地场景资源。

注: 仅在编辑器生成中可用。

  • GEN_EDIT_STATE_MAIN = 2 ---如果传递给 instance ,为本地场景提供本地场景资源。只有主场景才应接收主编辑状态。

注: 仅在编辑器生成中可用。

描述

场景文件的简化接口。提供对可以在场景资源本身上执行的操作和检查的访问。

可用于将节点保存到文件。保存时,将保存节点及其拥有的所有节点(请参见 owner 属性对 Node

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

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:
    ResourceSaver.save("res://path/name.scn", scene) # Or "user://..."

属性描述

违约

“conn_count”:0,“conns”:poolintarray(),“可编辑的_实例”: [ ] ,“名称”:PoolStringArray(),“节点数”:0,“节点路径”: [ ] “节点”:poolintarray(),“变量”: [ ] ,“版本”:2

场景内容的字典表示。

可用的键包括资源的“rnames”和“variants”、节点的“node ou count”、“nodes”、“node ou paths”、基本场景子级覆盖的“editable ou instances”、信号连接的“conn ou count”和“conns”以及打包场景的格式样式的“version”。

方法说明

  • bool can_instance ( ) const

返回 true 如果场景文件有节点。

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

实例化场景的节点层次。触发子场景实例化。触发 Node.NOTIFICATION_INSTANCED 根节点上的通知。

pack将忽略不属于给定节点的任何子节点。见 Node.owner .