- Home /
Can projects share an Assets folder?
This seems like the kind of question that should have been asked and answered over and over, but I can't find the answer. I want the same folder to be accessible to multiple projects to use and edit. Copying the contents into every other project isn't a good solution because then any edits I make in one project has to be copied out into the other projects.
I can kind of think of a way to do this with scripts, but it's such an ugly method, and still requires maintenance because Unity likes to write its own solution and project files.
And if Nikaas' suggestion doesn't do it, a program called Create Synchronicity would probably be able to sync the folders for you: http://synchronicity.sourceforge.net/
Open source, so free to try out. And a rather powerful tool.
I had the same issue. I started by having 1 giant project, and then selecting scenes to build different games. Later I started using symlinks and a shared folder, and then I also started using source control. I'm very happy with this combination of symlinks and source control, and I can definitely recommend it! It didn't work as expected on my mac though, so I got a windows development pc just for Unity :P
Answer by Nikaas · Oct 19, 2015 at 11:43 AM
I haven't done it, but...
You can try using symlinks? When adding assets this may require maintenance depending on how you initially set up your symlinks to files/folders.
Answer by mihakinova · Oct 19, 2015 at 12:02 PM
There really is no elegant solution to this.
One way to do it would be using symlinks, but that would only work on a MAC / Linux. Basically what symlinks do is, they enable you to have one folder or file "appear" in multiple places, while having only one instance of it.
Another solution would be to use version control like git. You could setup a project on bitbucket, that would contain your desired folder with all of your assets (just the assets, not the entire unity project). Then you could clone that folder in every project that needed it. When you update something in any of your projects you could commit & push it to the repository and pull it on all of your other projects.
The best solution IMO would be an asset package. Have one project that has all of the resources you want to share, then just export them to a .unitypackage file. After that you can drag & drop it into all of your projects. But in this case you would have to update your base project & export the new package when you wanted to make a change...
One way to do it would be using symlinks, but that would only work on a $$anonymous$$AC / Linux.
Windows fully supports symlinks as well.
Well I'll be damned. I thought it was just a Unix thing... good to know!
To be fair, creating a remote repository may be the wiser way to go about it, for a number of reasons. I'm terrible about version control, so it's probably better to get in the habit at this early stage.
While I'm still learning Unity, I'm making a lot of projects for the purpose of testing and experimenting, and I'm doing a lot of updates to Editor as I learn new things, expanding/refining the toolset. The workflow design probably didn't have this use in $$anonymous$$d.
I'm on a Windows system, so I don't have symlinks, and asset packages aren't very accessible. I tried shortcut folders, but they're foreign objects to Unity. $$anonymous$$aybe I can $$anonymous$$ch the Editor to use them.