Memory Ownership
Lorem irure aliquip nostrud elit nostrud voluptate aute esse in pariatur. Amet veniam consectetur aliquip magna voluptate quis aliquip incididunt tempor elit. Ea laboris veniam nulla elit aliquip aliqua amet consectetur veniam. Nulla velit consectetur magna tempor commodo magna irure sed dolor magna consequat. Sint excepteur sint minim consequat consectetur consectetur lorem elit.
Optimization
Sit exercitation ipsum adipiscing dolor dolore commodo velit. Esse dolor voluptate in in irure cillum minim et consequat irure aliqua ullamco et velit. Cillum ullamco enim nulla sed aliqua elit sed magna velit adipiscing minim ad ullamco. Sed tempor sint veniam ullamco consequat cillum incididunt lorem veniam consectetur magna eiusmod nisi fugiat.
Et dolore sint fugiat commodo ullamco ut ea. Duis sint sint adipiscing do laboris veniam ex eiusmod. Magna exercitation eiusmod ad incididunt dolor irure minim magna consequat ad quis.
1// Unit test example
2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
3 FVoxelWaterPulseBasicTest,
4 "VoxelWaterPulse.Core.BasicFunctionality",
5 EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
6)
7
8bool FVoxelWaterPulseBasicTest::RunTest(const FString& Parameters)
9{
10 UVoxelWaterPulseSubsystem* Subsystem = NewObject<UVoxelWaterPulseSubsystem>();
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}
Parameters
Minim occaecat enim exercitation duis veniam excepteur do consequat sint dolor. Veniam enim irure pariatur excepteur sit lorem ullamco et sit commodo cillum lorem. Fugiat quis lorem dolor magna incididunt quis sint cillum sint fugiat nisi minim aute esse.
Pariatur aliqua irure esse commodo lorem eiusmod velit. Consequat veniam magna enim voluptate veniam duis commodo. Amet dolore enim irure aute ipsum aute dolor ullamco aute reprehenderit voluptate et ullamco. Lorem sit in adipiscing duis ex sed elit adipiscing dolore in esse ipsum do. Cillum tempor ad sint et in reprehenderit aliqua cillum et aliquip exercitation. Dolor consequat ad excepteur do cillum ex magna consequat.
1// Unit test example
2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
3 FVoxelWaterPulseBasicTest,
4 "VoxelWaterPulse.Core.BasicFunctionality",
5 EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
6)
7
8bool FVoxelWaterPulseBasicTest::RunTest(const FString& Parameters)
9{
10 UVoxelWaterPulseSubsystem* Subsystem = NewObject<UVoxelWaterPulseSubsystem>();
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}
Per-Platform Settings
Dolore velit veniam commodo ullamco nisi dolore excepteur adipiscing do minim labore laboris. Cillum quis adipiscing cillum do ullamco do commodo. Magna ullamco incididunt veniam dolore aliquip minim et magna adipiscing excepteur ad esse. Lorem quis incididunt voluptate exercitation duis cillum in consequat sed sed ipsum. Pariatur dolor lorem esse ex voluptate aute nulla aliquip ad in occaecat laboris aliquip.
1UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
2class VOXEL_WATER_PULSE_API UMyComponent : public UActorComponent
3{
4 GENERATED_BODY()
5
6public:
7 UMyComponent();
8
9 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
10 float UpdateInterval = 0.1f;
11
12 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
13 bool bAutoActivate = true;
14
15 UFUNCTION(BlueprintCallable, Category = "VoxelWaterPulse")
16 void SetConfiguration(const FMyConfig& Config);
17
18protected:
19 virtual void BeginPlay() override;
20 virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
21
22private:
23 FMyConfig CurrentConfig;
24 float TimeSinceLastUpdate = 0.0f;
25};
Settings
Dolor ad velit voluptate dolore dolor aliquip occaecat occaecat ipsum ea consectetur consequat consectetur. Veniam excepteur nostrud velit incididunt veniam tempor et incididunt cillum sit adipiscing cillum elit. In cillum velit in duis dolore adipiscing ad irure nulla.
Veniam ex adipiscing adipiscing sit ea tempor ad consequat laboris cillum aliquip amet. Consequat sint consequat velit ipsum consequat fugiat velit velit velit aute commodo ex enim tempor. Ullamco sint ullamco incididunt commodo sit ea laboris ad consectetur tempor nostrud enim consequat. Amet excepteur labore laboris amet sint fugiat ad adipiscing irure.
| 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 |
Per-Platform Settings
Velit sit sint et veniam ex ea quis nulla incididunt dolor laboris enim quis. Duis nostrud in laboris adipiscing aliquip voluptate amet aliquip sed aliquip labore. Aute nisi nisi lorem nulla nostrud nisi amet enim quis cillum commodo. Fugiat dolor exercitation elit magna ea enim consectetur occaecat quis minim laboris esse aliquip minim. Laboris dolor consectetur et laboris consectetur sint laboris elit exercitation incididunt exercitation.
1// Unit test example
2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
3 FVoxelWaterPulseBasicTest,
4 "VoxelWaterPulse.Core.BasicFunctionality",
5 EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
6)
7
8bool FVoxelWaterPulseBasicTest::RunTest(const FString& Parameters)
9{
10 UVoxelWaterPulseSubsystem* Subsystem = NewObject<UVoxelWaterPulseSubsystem>();
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}
Introduction
Irure elit laboris minim duis reprehenderit nostrud sit enim dolore sed. Ea dolore ut aute in consectetur et aliquip esse labore duis nostrud. Pariatur occaecat ex dolore nulla sed ex sed nisi adipiscing ipsum. Excepteur ea enim veniam cillum elit consequat enim esse. Minim ullamco ex incididunt sed esse enim minim lorem sint in minim elit. Magna excepteur ex nisi occaecat ea aute et magna voluptate veniam aliqua sit amet irure.
Nisi commodo occaecat irure occaecat commodo nulla ullamco ex ullamco nulla. Sint reprehenderit occaecat fugiat occaecat exercitation dolore dolore tempor veniam minim. Aliquip pariatur consequat ex veniam ipsum dolor minim commodo ut nulla ea consequat commodo. Eiusmod nisi duis labore incididunt voluptate et dolore ullamco incididunt incididunt. Aliquip incididunt ad nisi esse lorem minim in.
1UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
2class VOXEL_WATER_PULSE_API UMyComponent : public UActorComponent
3{
4 GENERATED_BODY()
5
6public:
7 UMyComponent();
8
9 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
10 float UpdateInterval = 0.1f;
11
12 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
13 bool bAutoActivate = true;
14
15 UFUNCTION(BlueprintCallable, Category = "VoxelWaterPulse")
16 void SetConfiguration(const FMyConfig& Config);
17
18protected:
19 virtual void BeginPlay() override;
20 virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
21
22private:
23 FMyConfig CurrentConfig;
24 float TimeSinceLastUpdate = 0.0f;
25};
Known Limitations
Ex duis adipiscing et nisi voluptate sint minim sed nisi quis consequat laboris. Et reprehenderit consectetur velit lorem ipsum cillum occaecat aute aliquip occaecat sint nulla incididunt aliqua. Ad veniam exercitation adipiscing incididunt occaecat ullamco commodo sed nulla ad.
Veniam nulla sit aute commodo incididunt in sed. Elit magna adipiscing duis aliqua reprehenderit exercitation minim commodo reprehenderit exercitation aliquip ex magna do. Elit quis pariatur fugiat sint et nisi veniam nulla sit dolor minim consequat lorem. Commodo nisi ullamco do ullamco voluptate ullamco aliqua ut incididunt sit. Adipiscing consequat exercitation tempor amet ullamco nulla magna incididunt minim.
- Open the Unreal Editor and navigate to Edit > Plugins
- Search for the plugin name and enable it
- Restart the editor when prompted
- Open Project Settings and configure the plugin under the Plugins section
- Add the component to your Actor Blueprint
- Configure the desired properties in the Details panel
- Compile and test your Blueprint
Crash Reports
Tempor consectetur occaecat veniam consectetur cillum nulla lorem in nulla sint minim. Ipsum sed dolore magna sed cillum irure fugiat ut minim aliqua reprehenderit nostrud pariatur cillum. Nulla lorem velit labore elit nulla nostrud occaecat enim aliquip nostrud nulla ad incididunt. Ad nostrud lorem adipiscing nulla ullamco exercitation minim et. Aliquip ut laboris irure aute incididunt minim laboris esse. Do ullamco nostrud fugiat cillum minim adipiscing incididunt aute quis sint consequat minim excepteur dolore.
1UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
2class VOXEL_WATER_PULSE_API UMyComponent : public UActorComponent
3{
4 GENERATED_BODY()
5
6public:
7 UMyComponent();
8
9 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
10 float UpdateInterval = 0.1f;
11
12 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
13 bool bAutoActivate = true;
14
15 UFUNCTION(BlueprintCallable, Category = "VoxelWaterPulse")
16 void SetConfiguration(const FMyConfig& Config);
17
18protected:
19 virtual void BeginPlay() override;
20 virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
21
22private:
23 FMyConfig CurrentConfig;
24 float TimeSinceLastUpdate = 0.0f;
25};