【Godot4】tresファイルを読み込んで別バージョンを作る

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】tresファイルを読み込んで別バージョンを作る

2023-10-20 | ,

Godot4でtresファイルを読み込んで別バージョンを作って使いたい!

概要

今回の記事では、Godot4でtresファイルを読み込んで別バージョンを作って使う手順を掲載する。

仕様書

環境

  • Gogot 4.1.1

手順書

例えばLabelSettingsのtresファイルを読み込んで別々のLabelでフォントサイズを変えて表示したい場合、下記のようにしちゃうとlabel1label2は両方ともフォントサイズが64になる。

func _init():
    var tres = preload("res://label_settings_pixelfont_16px.tres")

    self.label1.font_setting = tres
    self.label1.font_setting.font_size = 32

    self.label2.font_setting = tres
    self.label2.font_setting.font_size = 64

self.label1.font_setting = tresの代入はいわゆるディープコピーではなく参照渡しなので、label1label2は同じLabelSettingsを使用してる状態。なので、この別々のLabelSettingsfont_sizeを設定してるつもりでも実際は同じLabelSettingsfont_sizeを設定してる。

読み込んだtresファイルを基にしたLabelSettingslabel1label2で異なるフォントサイズで表示したい場合は下記のような感じになる。

func _init():
    var tres = preload("res:///label_settings_pixelfont_16px.tres")

    self.label1.font_setting = tres.duplicate()
    self.label1.font_setting.font_size = 32

    self.label2.font_setting = tres.duplicate()
    self.label2.font_setting.font_size = 64

duplicate関数でインスタンスを複製することで別々のLabelSettingsになる感じ。
こうするとlabel1label2はそれぞれ別々のfont_sizeで表示されるようになる。

まとめ(感想文)

newinstantiateだと思ったらduplicate