# UVoxelCameraAudioComponent

`UVoxelCameraAudioComponent` belongs to the VoxelCamera runtime module.

Aliqua veniam excepteur fugiat aliquip pariatur ut consequat duis excepteur enim sed. Sit labore voluptate esse nulla sint cillum nisi ex ut sint labore cillum. Sit consectetur nulla do reprehenderit ad dolor ullamco dolor sit aute ad quis labore ad. Ad ex voluptate ipsum eiusmod voluptate ex sint minim aliquip aliqua. Lorem dolore consequat ad reprehenderit consectetur ad irure labore velit exercitation in. Aliqua dolore aute nulla et ex aliqua consequat esse occaecat eiusmod dolor.

## Declaration

```cpp
// Unit test example
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
    FVoxelCameraBasicTest,
    "VoxelCamera.Core.BasicFunctionality",
    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
)

bool FVoxelCameraBasicTest::RunTest(const FString& Parameters)
{
    UVoxelCameraSubsystem* Subsystem = NewObject<UVoxelCameraSubsystem>();
    TestNotNull(TEXT("Subsystem should be created"), Subsystem);

    Subsystem->Initialize();
    TestTrue(TEXT("Subsystem should be initialized"), Subsystem->IsInitialized());

    FMyQueryParams Params;
    Params.Radius = 500.0f;
    TestTrue(TEXT("Query params should be valid"), Params.IsValid());

    return true;
}
```

## Members

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| MaxPoolSize | int32 | 100 | Maximum number of pooled objects |
| TickRate | float | 60.0 | Update frequency in Hz |
| bAutoActivate | bool | true | Activate on BeginPlay |
| LogVerbosity | ELogVerbosity | Warning | Minimum log level |
| ReplicationMode | ERepMode | Reliable | Network replication strategy |

## Example

```cpp
// Declare delegates for event-driven communication
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChanged, EMyState, NewState);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnProgressUpdated, float, Progress, FString, Message);

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnStateChanged OnStateChanged;

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnProgressUpdated OnProgressUpdated;

// Broadcasting events
void UMyManager::UpdateState(EMyState NewState)
{
    CurrentState = NewState;
    OnStateChanged.Broadcast(NewState);
    OnProgressUpdated.Broadcast(GetProgress(), GetStatusMessage());
}
```