栗片いづも/妄想御殿 2023/10/15 09:55

自分向けGodot備忘録 #4

Nodeのパスを作るタイミング

@exportが一番確実とはいえ使いたくない場面は多いです
「エディタで毎回ドラッグ&ドロップするのが面倒」から「動的生成するからエディタでのアタッチができない」まで
その場合はget_node()/$を使ってパスを作るのですが、このタイミングが動的生成時には特に問題になる場合があります
一番多いパターンは「func _ready()」内や、変数宣言時に「@onready」で読み込ませる方法だと思います
しかし動的生成して生成後に関数を使う場合、パス生成が終わってない状態でアクセスしてしまう場合は当然発生します
なので動的生成では生成後の最初だけ動かす関数の最初にget_node()/$をしてやるのが安全だと思います
動的生成したSceneの変数がそのScene内だけで完結するのであれば、あまり気にしなくてもいいです


スクリプトを跨ぐクラスの扱い方

素直に

const 「スクリプト用の変数」 = preload(「スクリプトのパス」)

で変数を先読みしてその変数からクラスを呼び出すのが無難
とはいえ、何かと面倒なのでよほどの理由がないならDictionary型で処理した方が楽だし安全だと思います
どうしてもクラスが必要であるなら「クラスとDictionary型を相互変換する何かを用意する」とかをすればいいと思います


RichTextLabelのInspectorにフォントサイズの設定タブが無い

なぜか無いので、位置決めにも困る
なので最初に[font_size=xx]を書いておくのが楽
そもそもBBCode使わないならLabelの方が楽
テキスト表示の時にも、処理としてテキストデータの最初に[font_size=xx]を差し込む仕組みにしておくと楽だと思います


intの乱数が欲しい場合に使うrandi_range()

よく忘れるので

randi_range(x、y)

は、x以上y以下の整数
C#とかのrand関数だとy未満になるので、うっかりしがち

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索