UCorePhysicsEdgeWorldSubsystem

v1.0
View as Markdown

UCorePhysicsEdgeWorldSubsystem belongs to the CorePhysicsEdge runtime module.

Sit labore voluptate nulla incididunt amet velit nulla commodo. Duis veniam aliqua aliquip elit ex voluptate in pariatur veniam dolor in labore. Ut consectetur sint in quis laboris minim sed velit pariatur aliquip nostrud ex enim. Nisi excepteur dolore adipiscing eiusmod ex fugiat nulla fugiat nisi ex ea incididunt occaecat do. Duis excepteur cillum amet nulla sit velit quis sed ad enim ex nisi labore. Exercitation sit incididunt aliqua ipsum aliquip excepteur dolor eiusmod ut esse aliquip ad enim elit.

Declaration

 1// Declare delegates for event-driven communication
 2DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChanged, EMyState, NewState);
 3DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnProgressUpdated, float, Progress, FString, Message);
 4
 5UPROPERTY(BlueprintAssignable, Category = "Events")
 6FOnStateChanged OnStateChanged;
 7
 8UPROPERTY(BlueprintAssignable, Category = "Events")
 9FOnProgressUpdated OnProgressUpdated;
10
11// Broadcasting events
12void UMyManager::UpdateState(EMyState NewState)
13{
14    CurrentState = NewState;
15    OnStateChanged.Broadcast(NewState);
16    OnProgressUpdated.Broadcast(GetProgress(), GetStatusMessage());
17}

Members

Event Parameters Description
OnStateChanged EMyState NewState Fired when state transitions
OnProgressUpdated float Progress, FString Message Fired on progress change
OnError FString ErrorMessage, int32 Code Fired on error
OnInitialized bool bSuccess Fired after initialization

Example

 1// Unit test example
 2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
 3    FCorePhysicsEdgeBasicTest,
 4    "CorePhysicsEdge.Core.BasicFunctionality",
 5    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
 6)
 7
 8bool FCorePhysicsEdgeBasicTest::RunTest(const FString& Parameters)
 9{
10    UCorePhysicsEdgeSubsystem* Subsystem = NewObject<UCorePhysicsEdgeSubsystem>();
11    TestNotNull(TEXT("Subsystem should be created"), Subsystem);
12
13    Subsystem->Initialize();
14    TestTrue(TEXT("Subsystem should be initialized"), Subsystem->IsInitialized());
15
16    FMyQueryParams Params;
17    Params.Radius = 500.0f;
18    TestTrue(TEXT("Query params should be valid"), Params.IsValid());
19
20    return true;
21}