Godot4 Config ファイルに辞書変数のデータをセーブする関数の例

無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、ConfigFile クラスを用いて、Config ファイルを作成して任意の設定値を保存する実装を紹介します。
Dictionary 型のデータの要素に対応したキーと値の組み合わせの設定値を、指定されたファイルのセクションに保存します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご利用ください。

スクリプト例

以下は、テスト用のシーンのルートノードに割り当てるスクリプトです。

Config ファイルへの保存は、ConfigFile クラスの set_value, save 関数を使用しています。

extends Node
## ConfigFile のセクションの読み書きを Dictionary 型を用いて行う関数とそのテストです。
## F6 キーでこのスクリプトを割り当てたシーンを実行すると起動直後にテストが実行されます。

# Called when the node enters the scene tree for the first time.
func _ready():
	test_save_config_file_section_from_dictionary()
	return


## save_config_file_section_from_dictionary のテスト関数です。
## CONFIG_FILE_PATH で指定したファイルパスにコンフィグファイルを保存します。
func test_save_config_file_section_from_dictionary():
	## 以下のパスに .cfg ファイルが作成されます。
	const CONFIG_FILE_PATH = "res://study/config_file/sample.cfg"
	const CONFIG_FILE_SECTION = "scale_correction_value"
	
	## セクション内に保存されるデータです。
	var dic_answer = {}
	dic_answer["Label"] = 0.9
	dic_answer["Button"] = 1.0
	
	# 辞書のデータ群を、指定した Config ファイルのセクションに保存します。
	# ファイルが存在しない場合は作成し、存在する場合は辞書の要素ごとに上書きします。
	print("save_config_file_section_from_dictionary call")
	save_config_file_section_from_dictionary(
		CONFIG_FILE_PATH, CONFIG_FILE_SECTION, dic_answer)
	
	return


## 指定した .cfg ファイルのセクションに、辞書型のデータを保存します。
## 辞書の要素のキーは、ConfigFile.set_value の key 引数、値は value 引数に対応します。
func save_config_file_section_from_dictionary(
	path: String, section: String, dic: Dictionary) -> void:
	
	# セーブする dic の要素を1つずつ config_file に設定します。
	var config_file := ConfigFile.new()
	for key in dic.keys():
		config_file.set_value(section, key, dic[key])
	
	# Config ファイルに保存します。
	var err = config_file.save(path)
	if err != OK:
		push_error("study_config_file_to_dictionary.gd:" +
			"save_config_file_section_from_dictionary:" +
			"config_file.save(path) != OK, path = ", path)
	
	return

処理の流れ

そのシーンを実行すると、起動直後に _ready イベント関数で、以下の辞書変数の内容を指定したファイル、セクションに保存するテスト関数を呼び出します。
※「dic_answer[“キー”] = 値」の形式です。

	dic_answer["Label"] = 0.9
	dic_answer["Button"] = 1.0

テスト関数で作成した dic_answer 辞書変数要素群を、save_config_file_section_from_dictionary 関数で Config ファイル(例:res://study/config_file/sample.cfg)の指定したセクション(例:scale_correction_value)に保存します。

Config ファイルがない場合は新規作成します。ある場合は、キー単位で値を上書きします。

テスト

新規作成したシーンのルートノードに、前述のスクリプトを割り当てF6 キーなどでシーンを実行します。

実行すると、指定したパス(例:res://study/config_file/sample.cfg)に Config ファイル作成されます。

Godot4 Config ファイルに辞書変数のデータをセーブする関数の例1

Config ファイルの内容を見ると、さきほど辞書変数に設定したキーと値に対応した項目が、指定されたセクションに保存されています。

[scale_correction_value]

Label=0.9
Button=1.0

まとめ

  • ConfigFileset_value, save 関数で、指定した Config ファイルセクションに設定値(キーと値の組み合わせ)を保存しました。
  • 設定値は、Dictionary 型の変数に設定した要素に対応した、キーと値の組み合わせを保存しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました