👋

[UE4]C++で書いたコードの内容がBPに反映されない

2021/03/05に公開

C++とブループリントを併用する開発方法を試していた時に起きた問題。
C++で作成したクラスをブループリントで継承し、複雑なロジックはC++で書いて、細かい値の初期設定などはブループリントクラスでしたかった。
最初に簡単にC++のクラスを作成し、ブループリントで継承した後、C++のコードにどんどん追記していってたら、ドキュメント通りにコードを書いても一部ブループリントに反映されなかった。

事象

https://docs.unrealengine.com/ja/ProgrammingAndScripting/ProgrammingWithCPP/CPPTutorials/PlayerCamera/index.html
具体的には、上記のページを見ながらカメラコンポーネントを追加してたが、CameraComponentがSpringArmComponentの子コンポーネントにならなくて困った。

これをしたら直った

UE4の再起動。
困ったときの再起動だが・・・とりあえずの解決にしかなっていない。

何かやり方が間違ってるのか、C++のコードを変更した際コンパイル以外にやらないといけないことがあるのかがわからない。
この現象が起きた時、Visual Studioでクリーンを実行してみたらエラーになって、それ以降ビルドに失敗するようになる。そしてUE4の再起動を行った後はビルドが成功するようになるので、クリーンができなくなってる何かしらの理由があるのかもしれない。

Discussion