環境
- Windows10 home
- Godot Engine v3.2.3.stable.mono.official
手順
- 親ノードに以下スクリプトをアタッチ
- 実行
- デバッグダイアログを閉じる
- シーンが保存される
使い道
- 自動生成ダンジョンなどの保存
- インポートした素材などの保存
スクリプト
(例: 子ノードを保存する)
extends Node
func _ready() -> void:
    var child = get_child(0)
    var path = "res://sample/" + child.name + ".tscn" # 指定ディレクトリが存在しなければエラー
    var ps = PackedScene.new()
    ps.pack(child)
    ResourceSaver.save(path, ps)
(例2: 最下層の子ノードを全て保存する)
extends Node
func _ready() -> void:
    for i in range(get_child_count()):
        var child = get_child(i)
        SaveNode(child)
func SaveNode(child: Node) -> void:
    var count = child.get_child_count()
    if (count > 0):
        for i in range(count):
            SaveNode(child.get_child(i))
    else:
        var path = "res://sample/" + child.name + ".tscn"
        var ps = PackedScene.new()
        ps.pack(child)
        ResourceSaver.save(path, ps)
参考