【UE5】Projectile Movement Componentを再アクティブ化したときに動かない問題
問題のブループリント
Set ActiveでFalseを渡すことで非アクティブ化しComponentのTickも停止させている。その後、逆の手順で再アクティブ化している。
しかしタイトルの通り、この手順ではProjectile Movement Componentは正しく動かない。
解決策
幸いにも同じ問題についてコミュニティフォーラムに回答があった。
Make a projectile move again after it comes to a stop - Blueprint - Epic Developer Community Forums
解決するには次の2点が必要。
- Projectile Movement ComponentからSet Updated Componentを呼び出す
- Projectile Movement ComponentのVelocityを再設定する
修正したブループリントは次の通り。
非アクティブ化した時点でProjectile Movement ComponentのVelocityは0になってしまう。そのため、Set Updated Componentを呼び出しても実際には移動しない(Velocityが0だから)。なので明示的にProjectile Movement ComponentにVelocityを再設定する必要がある。 このときVelocityには「方向 x Speed」の値を設定しなければならない(Initial Speedは再アクティブ化のときには参照されない)。
参考
Make a projectile move again after it comes to a stop - Blueprint - Epic Developer Community Forums