Unity Event List/Array

In unity, using Unity Event would create a function call similar to button-pressing calls. It has been a great tool for me to use more effectively to build a game.

I am trying to make it into a list or array so I can better put them side to side and do certain things with them involving loops. But because Unity Event is Serializable by nature, they get turned into displaying their variables instead of showing the button-ish display.

Want to know if there is any way to partially unserialize it, because of System.NonSerialized just hides it.

It’s not a serialisation issue, but a custom inspector issue. UnityEvent and it’s derived types will have a custom inspector that draw it normally looks when as a field, but I suppose this doesn’t work when nested in an array? Not entirely surprising given Unity’s very non-modular approach to inspectors.

I’d almost consider this a bug, but then again fields like the Addressables asset reference fields also screw up when nested in any way, so it’s not unusual.

I see, I just assumed it was a matter of the serialization because usually that reduces things down into their variables.

You have your terms mixed up. Serialisation is how values are written and read to and from disk, which is separate to how said values are drawn. When you select an asset, Unity deserialises it, then works out the appropriate property drawer for each given type, then draws said types (over simplification, but basically how it works).

So basically with Unity sees a class of type UnityEvent, it gets the appropriate drawer and uses that to draw it in the inspector (instead of the strings and object references that is is under the hood). It seems this doesn’t work when nested in a collection.

Any news in this? Workaround?