Unity Library Switcher
Unity Library Switcher is a Unity3d plugin for switching build targets and git branches without the burden of assets reimporting.
Install
In order to install UnityLibrarySwitcher
you have two options. First one is to download unitypackage file and open it. Second option is to clone this repository or download sources and copy UnityProject/Assets/UnityLibrarySwitcher
folder to your project assets folder. Just donโt forget to add LibrarySwitcherCache
folder to .gitignore
file.
For Windows users this plugin is working but not as perfect as on OS X. UnityLibrarySwitcher
needs path to bash
or sh
that already is configured to work with git
. By default it assumes that you have installed GitHub Client to C:\Program Files (x86)\Git
. In case itโs not what you are using - feel free to change following line in MonoBasher.cs
.
private static string ShellPath = @"C:\Program Files (x86)\Git\bin\sh";
In case you want to improve things on Windows - pull requests are highly appreciated.
How it works
You have two actions:
- switch build target
- switch git branch
Both actions are available from the plugin window, which is accessible from Window/Library Switcher
menu.
Library
folder is cached for every (branch, target)
pair. When you perform any action, the plugin will cache Library
folder for current (branch, target)
pair and then replace Library
folder by the cached library of selected (branch, target)
pair if it exists. To make things work faster plugin copies Library
folder only in case you are moving to the (branch, target)
pair that wasnโt cached before. If it was already cached, then plugin just moves directories around. All cached Library
folders are stored in LibrarySwitcherCache
folder in unity project root directory. (branch, target)
pairโs Library
folder is stored at LibrarySwitcherCache/branch/target
.
Limitations
- Due to the implementation details you should change build target or git branch only from the plugin window. Otherwise you will run into unnecessary imports.
- Branch switching only works with locally existing branches.
Contributing
Pull requests, feature requests are warmly welcome!
Issues / Tasks
Please, see Issues section.
More reading
You can find more information about this project in this blog post.