Godot 4.4 回避・オブ・Dictionaryエラー
Godot 4.4の型指定Dictionary、早速使ってみてます。ところが、多分ですけど、下記のように書くと動かないっぽいです。(Dev3時点)
class_name ClassA
var array: Array[String] = []
class_name ClassB
var dict: Dictionary[String, ClassA] = {}
class_name ClassC
func _init() -> void:
var b: ClassB = ClassB.new()
b.dict["X"].array.append("Y")
もちろんこれ、存在しない"X"キーでValueを参照しようとしているので、実行時にエラーになるんですけど。そうじゃなくて。書いた時点でParseエラーになります。この例だと単純なおかげか、エラーで済んでるんですけど、プロジェクトによっては、エディタ自体が強制終了することもあります。(外部のテキストエディタで修正しないと開けない)
なんでこんなことになるかというと、スクリプトのどこにもClassAが登場してないからじゃないかなと思います。Dictionaryの型指定には出てくるんですけど。それはカウントしないっぽいです。
なので、こういう言う風に書くと動くようになります。ClassAで一度受け取って、ClassAを登場させる。
var a: ClassA = b.dict["X"]
a.array.append("Y")
まだ発展途上なので、Devが上がるとこれも必要なくなるかもしれませんね。でも今のところはこういう書き方で回避できるっぽいです。
以上です~~