m fix type links |
m change impulse to call |
||
Line 4: | Line 4: | ||
|Inputs= | |Inputs= | ||
[ | [ | ||
{"Name":"*", "Type":" | {"Name":"*", "Type":"Call"}, | ||
{"Name":"Variable", "Type":"IVariable`2"} | {"Name":"Variable", "Type":"IVariable`2"} | ||
] | ] |
Revision as of 19:01, 9 February 2024
Indirect decrements can be commonly found in legacy content that has been migrated from other platforms. Indirect decrements take Variable (Variable) as an input, and will decrease the value that is wrapped by Variable (Variable) by one.
Indirect Decrements are a way to change a specified value without driving it. Instead you can use Indirect Decrements to change a value in a similar fashion to changing the value through the inspector. Using Indirect Decrements helps with performance too, since the values provided to the node only evaluate for one game tick while the node is being impulsed vs a driver which evaluates every game tick. This can also be used to reduce the amount of times code is evaluated. If you have to search the entire root for your code to find a slot and then do an operation, using Indirect Decrements with your operations will help with performance since you're only searching once and not every single game tick.
Variables for Indirect Decrements can be made using a Field As Variable which can wrap any type (Generic). Variables can also be made by dragging a source of the same wrapped type (ex:Source<String> -> Variable<String>) into any variable input and it will make a special converter to connect them. This can be multiplexed using Multiplexing for using multiple variables into the same input on Indirect Decrements. Multiplexing the inputs on Indirect Decrements can be useful in modifying a list of variables during a For or While loop.
Inputs
* (Call)
Call this to write the value.
Variable (Variable Generic)
The Variable to decrement by 1.
Outputs
OnWritten (Continuation)
sends an impulse after * (Call) has been impulsed and the value has been decremented .
OnFail (Continuation)
sends an impulse after * (Call) has been impulsed and the value wasn't able to be decremented due to a missing target or the variable not wrapping a valid IField`1
Examples
-
How to use multiplexing on an indirect node type to switch variables using a for loop.
-
How to use a source to make an indirect variable.
-
How to use a simple indirect decrement setup.