На протяжении нескольких дней пытаюсь получить изображения с внутриигровых камер (нескольких одновременно) никак не получается. На данный момент пытаюсь реализовать чужой код, но без идей почему выдает ошибки. Подскажите пожалуйста, в чем может быть проблема(самые простые и глупые вещи, как подключения библиотек вполне могут быть причиной).
Код:
Код:
ACam1::ACam1()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
USceneCaptureComponent2D* sceneCaptureActor = (USceneCaptureComponent2D*)GetWorld()->SpawnActor<USceneCaptureComponent2D>(USceneCaptureComponent2D::StaticClass());
UTextureRenderTarget2D* TextureRenderTarget = (UTextureRenderTarget2D*)NewObject<UTextureRenderTarget2D>(sceneCaptureActor);
sceneCaptureActor->TextureTarget = TextureRenderTarget;
// Creates Texture2D to store TextureRenderTarget content
UTexture2D* Texture = UTexture2D::CreateTransient(TextureRenderTarget->SizeX, TextureRenderTarget->SizeY, PF_B8G8R8A8);
#if WITH_EDITORONLY_DATA
Texture->MipGenSettings = TMGS_NoMipmaps;
#endif
Texture->SRGB = TextureRenderTarget->SRGB;
// Read the pixels from the RenderTarget and store them in a FColor array
TArray<FColor> SurfData;
FRenderTarget* RenderTarget = TextureRenderTarget->GameThread_GetRenderTargetResource();
RenderTarget->ReadPixels(SurfData);
// Lock and copies the data between the textures
void* TextureData = Texture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
const int32 TextureDataSize = SurfData.Num() * 4;
FMemory::Memcpy(TextureData, SurfData.GetData(), TextureDataSize);
Texture->PlatformData->Mips[0].BulkData.Unlock();
// Apply Texture changes to GPU memory
Texture->UpdateResource();
}
Ошибки:
Код:
(USceneCaptureComponent2D::StaticClass()) //Недопустимы неполный тип
(UTextureRenderTarget2D*)NewObject<UTextureRenderTarget2D>(sceneCaptureActor) //Отсутствуют экземпляры перегруженная функция, соответствующие списку аргументов типы аргументов: (USceneCaptureComponent2D *)
sceneCaptureActor->TextureTarget // использование указателя на тип неполного класса не допускается