Map01,Map02というクラスブループリントの他に、別のブループリント(仮にC-BPとします)があるのですが、このC-BPを編集してコンパイルするたびに、Map01,Map02の再コンパイルが必要になります。
再コンパイルせずに実行すると添付ファイルのエラーが発生します。(Widgetボタンクリック処理のエラーのようです)
何も修正せず、緑の正常マークの付いたコンパイルボタンを押すだけなんですが、なぜ、こんなことが起きるのでしょうか?
思い当たることはMap01,Map02内にC-BPを変数として登録していることですが、それが関係しているんでしょうか?
はい。
当初はそのノードをずっと調べていたのですが、どこにも問題はなく、結局何も修正せずコンパイルしなおすだけでエラーが解消されました。
今後map15くらい増えるので、C-BPを修正のたびに全部コンパイルしなおす必要があるのか、あるいは一括でコンパイルできないかと思いました。
言うのは非常に難しい。タイミングの問題でもある可能性があります。あるべきときに何かが完全に準備ができていません。そのコードを少し遅らせることはできますか? (.2は良いです)
Widgetであればプレイインエディタで起動する際にすべてコンパイルされるため特に問題ないと思います。
そしてC-BPはMap01,02に入っているWidgetということだと思いますが、子が変われば扱いも変わるため、再コンパイルが必要になるのも必然です。
(C-BPの変更、つまり動作が変わるとそれを使っている他のWidgetに影響を与える可能性があるため)
また、エラーに関してはコンパイル云々とは特に関係ないと思われます。
「Accessed none」とあるので、該当処理の周辺の変数が空っぽのまま処理を実行しようとしたのではないでしょうか
その場合はisValidノードで変数の中身が存在するかチェックしてから処理を実行することをお勧めします。
再コンパイルが必要になるのは理解できるのですが、?マークが付かず、緑の正常チェックマークのままだったので、原因が分からず不思議に思いました。
再コンパイルによりBeginPlayの順番が入れ替わってエラーになったりならなかったりしていたようです。お騒がせしました。