Serialization: ScriptableObject instead of json


I just purchased this and have messed around with some of the examples. I’m curious if there has ever been any consideration for using ScriptableObject for serialization? This would eliminate the need for the Json and Zip dependencies as well as eliminate unnecessary MonoBehaviour usage for things like UnityReferenceHelper.

Specialized editors could be written for placing nodes, in the case of the PointGraphs, for example. This would clean up the scene hierarchy as a consequence.

Obviously this isn’t exactly a trivial change.


I have thought about that, but decided against it because I want to be able to load arbitrary graphs from saved files which unfortunately cannot be done with Unity serialization.
Furthermore I think it might be a bit slow. If a graph is serialized, the data could easily be several megabytes and the Unity serializer doesn’t seem to like that much data (more specifically the Undo system doesn’t like it).

The Json library has been removed in the latest beta, it has been replaced by a very tiny custom json serializer that I wrote. It is both faster (though that doesn’t really matter for this case) and will improve compilation times since there is less code to compile.

The zip dependency can be removed (see the Optimizations tab), however if you serialize any large graphs then the data will obviously not be compressed anymore.

I am not quite sure what you mean by this.