Download

Niagara Dynamic Input Script doesn't work with "Data Value" input, but "Linked Value" works. (4.27)

It’s weird. Since they’re confidential contents, I’ll try to describe the issue here.

In brief, I have a dynamic input script and define some module inputs for use.

In Niagara system, I add this script under Particle Update module, and setup the value with Niagara Parameter Collection. It works well.

But we want to expose it on the panel in Niagara system instead of creating parameter collection file for it. So, I tried to set it up as data value. And It doesn’t work anymore.

What might be the reason behind this? Does NDIS support linked value for UCLASS() only?
The input data is just a simple Niagara Data Interface class:

UCLASS(EditInlineNew, Category = “Dynamic Input Test”, meta = (DisplayName = “My Dynamic”))
class MYRUNTIME_API UMyDynamicNDI : public UNiagaraDataInterface
{
GENERATED_UCLASS_BODY()

   UPROPERTY(EditAnywhere, Category = "Test Indices")
   TArray<int32> TestIndices;

   UPROPERTY(EditAnywhere, Category = "Some other struct")
   TArray<FSomeOtherStruct> TestData;

   // ....... Other necessary overriding ........ //

}

Thanks!

Minor update: Read from new user parameter doesn’t work as well.
It only works with Niagara Collection Parameter :(.

Okay, I just solved it.
If you want to setup properties on property window.
Be sure to override CopyToInternal() function from UNiagaraDataInterface.
It will be called after PostEditChangeProperty, and transfer parameters to Niagara system.