A lot of the time when I’m working with scriptable objects, prefabs or other project objects I’m not working in an actual scene so ctr+s doesn’t make sense to use. As mentioned, this makes GIT commits a pain sometimes.
More aggressively flushing in memory changes to disk would really be a godsend. A lot of the time I end up having to shut down and restart unity to make sure the changes are being written to disk.
This, so much this. We have some very scriptable object heavy workflows in our pipeline and as such we often do this dance to get unity to write changes.
Git + scriptable objects are a pain right now due to way they are handled, and I often find myself questioning why a colleagues commit does not work for me to discover that a scriptable object was not written to disk and pushed through git, despite the fact that they “saved”.
Renaming the menu items would be a really good and easy start here. By just the name “Save” there is no information about what exactly it saves. It’s ambiguous naming, and now that we’ve got prefabs we can edit independently of scenes the context is a little more complicated than it used to be.
I’d suggest “Save Scene” and “Save Project Metadata” (or whatever would be the technically correct term). Also, I’d suggest that when you’re in the Prefab editor the “Save Scene” item should be seamlessly replaced with a “Save Prefab” item mapped to the same key, because why would we want anything else?
On the Mac, you map the the shortcut to save project in the keyboard prefs (note: the pref pane sees each app as distinct, so if you upgrade / install another version, you will have to assign it as well, it doesn’t carry over).
You can do it on windows too, though you many need a freeware tool to do it.
Save Project mostly works. There have been a few instances where an SO hasn’t “saved” after changes (sometimes when making changes via play mode). But it is pretty rare. Typically if I am doing a big commit that isn’t isolated to a few checked out files, I will quit Unity first and then do a reconcile just to be 100% sure.
Yea… I know there is no good time to revamp things, but it would be nice if they picked some release in the future and have something like a “quality of life” update that mostly addresses the little weirdness that have built up over time that are largely awkward and not mission critical. Scenes and many other things work a bit differently and mean something slightly different than they did a decade or so ago.
Exactly. I get it because I’ve been using it for something like a decade and innately understand the context of things based on how they have changed over that time.
To a new(er) user, it says “save” but it arbitrarily only saves certain things and ignores others. It makes no sense from a user perspective unless you already know what it means.
Looks like this happens transparently. Opening a prefab, changing something, then going File → Save also blanks out the “Save” button at the top of the prefab’s editor window. It’d be good to communicate that more effectively, because I’ve been using that for months and didn’t know it was a thing.
The new nested prefab editor forces a save on close, I think it shouldn’t be an an issue with prefabs in newer Unity versions anymore.
Pretty sure that’s a too complicated term for many people and then they’re afraid to even try it Unity also saves more than just .meta files on “Save Project”, doesn’t it?
Hey. I spoke to some of the teams regarding this. We actually did use to have Save Scene and Save Project, we changed it in 2018.3 when we added the new Prefab Workflow.
It’s not been updated with the Prefab mode changes so I have just updated it, my changes won’t be available until the docs team have reviewed them so here is the additional information I have added:
Save Scene is now just called Save. This is because Save actually does save everything. The only exception is when in Prefab Mode:
One of the most common reasons why changes to ScriptableObjects and other assets are not saved it because they are not set as dirty. So I also added this to the Save Project section
A team member did look into changing the Save label when in prefab mode, unfortunately, it’s stored in our native side and not simple to dynamically change. Hopefully, we can revisit it in the future.
Please consider some kind of background autosave to project objects. There are certain user actions like: “Apply to prefab”, “new scene” etc, that would probably make sense to trigger a project save.
Because flushing memory changes to disk is so transparent (no option to cancel for example, no ‘save changes’ prompt on unity exit) - users simply assume the changes are being written as they work.
In terms of labeling, I wouldn’t even use the “Save” nomenclature, since this does not operate like a save feature in most apps. It is a “flush” operation not a “save” operation, “flush project changes” is more accurate than “save project”.
What it’s doing is: “Write Buffered Changes to Disk” not “Commit Changes” (which is how save normally functions)
Now that I think about it, this would properly go under “refreshing”, wouldn’t it? Eg, CTRL+R for manual (although refresh is automated, by default). After all, ScriptableObjs are supposed to “instantly save”, so refresh seems more relevant than Save, as some others have pointed out.