My game is already released, I didn’t use ScriptableObjects, as they need to be connected to gameObjects, actually I use a base class system, I proffer that over an Interface for this as they are all deriving from the same structure EntityBase
I only use a single prefab(for monsters), probably could of used an empty gameobject and added all I needed but, I was new at unity so a followed what I understood.
I manually add the script, again I probably should of added this into the inspector, but as I needed a reference to the object so I could set other fields I thought, what’s the point, is it faster slower I’m not sure.
it also uses an events system, because I come from pure .NET(winforms etc), I’ve been around multi threading and events for years so I understand them, so basically all monsters for example call a single method if they hit the player, even the player for bullets uses the same system as some monsters if the fire bullets, I just use typeof to return their component(object script) type and go from there.
I was making an effort to keep the APK file as small as possible, I think it’s 24mb at the moment with about 20 sprite sheets, plus animations, sound etc, and 60+ levels that’s not bad, in this version the levels are XML I know really bad, but I had not upgraded the map editor for binary at that time, now it can do both.
I did notice something, if you have an upgraded account, when you compile for release it shaved about 1.5mb of the APK compared to the personal version.
I come from the old school like I said where size mattered, so I make effort to decrease the end file result as much as I can, using Tinypng or Tinyjpg, can shave off huge amounts of image size, with zero reduced quality.
I’ve enjoyed this conversation hope others have too, It just goes to show, how flexible unity is, and how different people use it.