public abstract class VfxCustomNodeThe block every custom-attribute node shares: a name and a width.
Remarks
The name is a [Setting], not a port, and that is the gap this closes. A port is lanes of float and a custom attribute is a name — it names a binding in the emitted shader and a host binds by it — so until the node graph could describe a string-valued field, SetCustom, RandomCustom and CustomOverLife were reachable only from a graph built in code.
⚠ An attribute exists because something writes it. There is no declaration node and no list to keep in step: the first block to name one declares it, and its slot is where it landed. That is the rule the built-in attributes already follow — see VfxCompiledGraph, whose storage is derived from what the operations touch rather than from a declaration an author has to remember.
⚠ Lanes is one, three or four. A custom attribute is a float, a float3 or a float4; two is refused rather than rounded, because VfxAttributes.Lanes would silently make it one.
Fields and properties (2)
public string AttributeWhat the attribute is called. An identifier, because the shader binds by it.
public Int LanesHow wide it is: one, three or four floats.
Used by (3)
- CustomOverLifeNodeVixen.Editor.VfxGraph
- RandomCustomNodeVixen.Editor.VfxGraph
- SetCustomNodeVixen.Editor.VfxGraph