見出し画像

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エラーになります。この例だと単純なおかげか、エラーで済んでるんですけど、プロジェクトによっては、エディタ自体が強制終了することもあります。(外部のテキストエディタで修正しないと開けない)

Parse Error: Parser bug (please report): Could not find external parser for class "ClassA". (Trying to resolve class member)

なんでこんなことになるかというと、スクリプトのどこにもClassAが登場してないからじゃないかなと思います。Dictionaryの型指定には出てくるんですけど。それはカウントしないっぽいです。

なので、こういう言う風に書くと動くようになります。ClassAで一度受け取って、ClassAを登場させる。

var a: ClassA = b.dict["X"]
a.array.append("Y")

まだ発展途上なので、Devが上がるとこれも必要なくなるかもしれませんね。でも今のところはこういう書き方で回避できるっぽいです。


以上です~~

この記事が気に入ったらサポートをしてみませんか?