Godotで実用に耐えられるのかの検証を始めました
触った感触としては、それほど悪くない感じです。
とか思いながら、さっそく問題が発生。
アタッチしたスクリプトが実行されない
CustomDraw.cs
using Godot;
using System;
public partial class CustomDrawView : Node2D {
public override void _Ready() {
GD.Print("do something");
}
}
結構うっかりなんですが、実行してもエラーもでないので気が付くのに時間が掛かりました。
ファイル名とクラス名は同じにしろ
結論から言うと、「ファイル名とクラス名は同じにしろ」です。
エントリーポイントの指定がファイルしかないので奇妙だなとは思ったんですがファイル名と同じクラスがエントリーポイントになるという事です。
そもそも、godotのサンプルは大半がGDScriptなのでC#の書き方もよく分かってないので地雷を踏みぬきながら進む感じです。
という感じで、以下のクラス名にすると無事実行されるようになりました。
CustomDraw.cs
using Godot;
using System;
public partial class CustomDraw : Node2D {
public override void _Ready() {
GD.Print("do something");
}
}
最近、調べてもよく分からん問題もChatGPT何かに質問するとサラリと回答してくれることが多いので結構便利ですよね。
今回の件も、「アタッチしたスクリプトが実行されない場合で考えられることは何ですか?」と質問したらかなりの候補の中にファイル名とクラス名が一致していないと言われ、ああっなるほど!と察することができました。
ちゃんとリファレンスを読んでいればこういう事も起きないのですがゲーム始める時に説明書を読まない人なので馬鹿な罠に引っかかってしまいます。