Hi, I am working on a program that will run on 10 different PCs.
Each PC has 10 different contents (images, texts, videos) to show to a client.
and this program should be manageable by the client who doesn’t have any knowledge of Unity.
So, my plan was to build a program that can read data from the StreamingAssets folder based on the JSON (e.g., different image paths, different texts, etc)
and make another program that the client can use to produce JSON with contents (images, strings, videos) that are placed in specific directories, like an editor (let’s call this an editor program).
So, when the client wants to run a program on another PC with new content, all they have to do is to write JSON from the editor program and put that JSON and other content files into the StreamingAssets.
I have searched how Addressable, ScriptableObject, StreamingAssets, Resources.load work, and my conclusion was, as I said, the combination of JSON and StreamingAssets to load different contents on different PC.
At this stage, I wonder whether using the ScriptableObject has any benefit in terms of performance or memory management.
If I use a ScriptableObject to load data from the JSON, then the flow of content looks like this: Client ← Program ← ScriptableObject ← JSON ← StreamingAssets
Surely, addressable is easy to handle memory management, but it seems like it doesn’t fit to my scenario (e.g., dynamic changes of contents per PC)
and Resources.Load method is also limited which is not suitable for our client usage (needs to be built within Unity).
I used StreamingAssets and JSON combination on an Android tablet PC a few years ago, and at that time, the loading process was a bit laggy and had a bit of a hard time managing the memory issue.
So I want to know whether ScriptableObject has any beneficial effect in my scenario or should I go for addressable which I still do not fully understand yet.
It would be really glad to hear any expert’s experience/advice to handle this issue.