Godot Engine - 実行時にノードをシーンとして保存する
環境
- 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)
参考
- 親ノードに以下スクリプトをアタッチ
- 実行
- デバッグダイアログを閉じる
- シーンが保存される
使い道
- 自動生成ダンジョンなどの保存
- インポートした素材などの保存
スクリプト
(例: 子ノードを保存する)
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)
参考
(例: 子ノードを保存する)
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)
参考
Author And Source
この問題について(Godot Engine - 実行時にノードをシーンとして保存する), 我々は、より多くの情報をここで見つけました https://qiita.com/syrup3663ve/items/f964cd2bed2e06989fe9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .