Spawn VolumeとBatteryCharacterの実装内容に関して、以下2点質問となります。
[1つ目]
ファイル名:SpawnVolume.cpp関数:SpawnPickupにてInstigatorを設定している理由は何なのでしょうか。
設定なしとしても、スポーンの操作はできるかと思いましたので確認致しました。
[2つ目]
ファイル名:ABatteryCollectorCharacter.cppUE4のGC(ガーベッジコレクション)の実行タイミングはどのタイミングになりますでしょうか。関数:CollectPickupsの最後に「TestPickup->SetActive(false);」を実行していますが、
Destory(PendingKillのフラグが立てる)の実行をした後のタイミングなので気になりました。
1.
Instigatorは与えたダメージの原因になる対象を設定するパラメータです。
Instigatorを設定するとダメージの処理が簡単になるので必要な場合は設定した方がいいです。
SpawnPickupでバッテリーをスポーンする場合、Instigatorは設定しなくてもスポーンする自体は問題ないです。
https://www.unrealengine.com/ja/blog/damage-in-ue4
https://docs.unrealengine.com/ja/Programming/UnrealArchitecture/Actors/Spawning/index.html
2.
ガーベッジコレクションは誰もオブジェクトを参照してない時に行われます。オブジェクトを参照するポインタが存在しない=もう必要ないことです。
IsPendingKillはオブジェクトが存在してるか確認する関数です。
https://docs.unrealengine.com/ja/Programming/UnrealArchitecture/Objects/Optimizations/index.html