お世話になっております。
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); }