Unreal Engine 4 https://uengine.ru/forum/ |
|
Получение изображений с внутриигровых камер https://uengine.ru/forum/viewtopic.php?f=19&t=40525 |
Страница 1 из 1 |
Автор: | Duset [ 14 авг 2019, 20:19 ] |
Заголовок сообщения: | Получение изображений с внутриигровых камер |
На протяжении нескольких дней пытаюсь получить изображения с внутриигровых камер (нескольких одновременно) никак не получается. На данный момент пытаюсь реализовать чужой код, но без идей почему выдает ошибки. Подскажите пожалуйста, в чем может быть проблема(самые простые и глупые вещи, как подключения библиотек вполне могут быть причиной). Код: Код: 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 // использование указателя на тип неполного класса не допускается |
Автор: | gary_cho [ 14 авг 2019, 22:14 ] |
Заголовок сообщения: | |
нельзя спавнить компоненты, только актёров!!!компоненты надо так MeshComponent = CreateDefaultSubobject< UStaticMeshComponent >( TEXT( "MeshComponent" ) ); |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |