C++で実行時にSpawnActorした APointLight が正しく動作しない

お世話になっております。

C++でゲーム開始時に APointLight を SpawnActor で生成して

カメラ位置に追従させてカメラライトのようなものを実装しようとしていて、

PIEのアウトライナにも生成されており、

Visibleもチェックがはいっているのですが、

正しくライトがシーンに適応されません。

エディタ上でアウトライナから選択して、いずれかの値を少しでも変更すると正しく表示されるようになります。

シーンに正しく適応されるには Component の SetVisibilityで有効にした後になにか処理が必要でしょうか?

以下のようなコードで UWorldSubsystem を継承したクラスのInitialize時に作成して、途中デバッグコマンドで

PointLightComponent->SetVisibility を呼び出し ON,OFFをさせています。

(SetActorLocation(CameraLocation) で カメラ位置に APointLight を毎フレーム追従させています)

CameraLight = World->SpawnActor<APointLight>(APointLight::StaticClass()); if (IsValid(CameraLight)) { CameraLight->SetMobility(EComponentMobility::Movable); // 動的に移動可能に. CameraLight->PointLightComponent->SetCastShadows(false); CameraLight->PointLightComponent->SetVisibility(false); CameraLight->PointLightComponent->SetIntensityUnits(ELightUnits::Unitless); CameraLight->PointLightComponent->SetIntensity(5000.0f); CameraLight->PointLightComponent->SetAttenuationRadius(8000.0f); }

こちら自己解決しました

UWorldSubsystem を継承したクラスのInitialize

だと Spawn するには早かったようで

FTickableGameObject も継承しているので

Tickに最初に来たタイミングで Spawn するように修正したら改善しました

こちらクローズしていただいて大丈夫です

お世話になっております。

解決したと聞き、安心いたしました。

それでは本件は解決済みとして、Closeさせていただきます。

以上、よろしくお願いいたします。​