As with most things programming related - and I'm not a very good programmer - there's no universal right way of doing things; all I can tell you is why I use gameobject.setactive for my UI components. If you have good reasons to do things a different way, there's no need to do things the way I do just because.
I personally use gameobject.setactive for the following reasons;
- it works very nicely with the content size fitter and layout group scripts provided to dynamically resize panels
- There are existing triggers for OnEnable() and OnDisable() I can add code to if needed, and there are existing functions to check if a gameobject is active or not
- As mentioned earlier in the thread, I find storing gameobject references more useful than directly storing gameobject components (like Transforms)
e:
For your translation question, as you're already using XML stuff, surely translations would just be an extra key in your XML dictionary...?
Hmm... I guess I probably should stick with the way I'm doing right now with the UI, as it works well for what I plan to do for the time being. I guess it isn't exactly a matter of "best way"...
Though one does wonder how does one ideally make a UI keyboard/controller selectable? Right now, the buttons can only be clicked by using a mouse. Escape/X Button toggles the menu, and nothing more. Ideally, it'd have a cursor that can be moved between "clickable" elements...
Well, the XML stuff right now is pretty much for loading/saving only for now. Speaking of which, I'm considering making the game reload the scene on load. Maybe then things will be a bit more clean
As for translation/localization, that is probably secondary to having things not be hardcoded to scene/scripts. Makes it much easier to edit text

Going to check out SmartLocalization and other options to simplify it, though I'm certainly thinking of doing it myself.
Apparently setting the managers and their instantiated items to not be unloaded on a scene change... broken the audio system a bit in the sense that it always play the default music of the very first loaded scene. Is it theoretically possible to have it so that on load, if the scene's manager's music to be loaded is different from the kept-in-memory's, reload music?
As for game development progress, well, I'm still working on tile sets for the first town. It's almost there, and pretty close to producing a usable town. And tweaking the code for the warp handler so that it stops the music smoothly and fades the screen out.
You've been pretty helpful with development help, really. No worries there!