GetTree().Paused = true;
このコードは、プログラムを停止することができるコードだ。
私はバトルが終了時にこれを使っている。
そして、問題がおきた。このコードがあると当たり前だけど他のプログラムは止まるので、何をしても動かない。
ちょっとTweenを使ってバトル終了後にお金でも獲得したことをアピールしてみようと思って動かそうとしたが動かなかった。
「なぜ?なぜ?」
もちろん、「GetTree().Paused = true;」という」コードを書いているから動かないのだ。
しかし、これを書いたことを忘れていると大変なことになる。
「動かないとき=何かエラーがある」と思ってしまうからだ。
いろいろ考えた。というかエディターにエラーの文字はない。だからこそ余計に考えてしまう。
まず、_Readyで動かしてみるとtween自体は動いていた。だからコードはあっている。
なぜ、動かないだ?・・・。 ということで閃いた。先日書いたこいつが悪さをしているのだ。
ということで解決した。
Tween tween = GetTree().CreateTween();
tween.SetPauseMode(Tween.TweenPauseMode.Process);
解決するにはこのように書けばいい。たった一行である。
ちなみに私はGodotでの開発はC#しか使っていない。
ChatGPTに聞いても私がPausedをしているという想定はしていないので、全然違う答えを書いてくる。
結局自力で思い出すしかなかった。あぶなかった。一時間近い時間が溶けたと思うが、次からもうはまらないので、よしとしよう。
ということで、エラーなくプログラムが動かないときは、「GetTree().Paused = true;」をしたかどうかを思い出すと幸せになれるかもしれない。