Unity Library Switcher is a Unity3d plugin for switching build targets and git branches without the burden of assets reimporting.
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.
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
.
- 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.
Pull requests, feature requests are warmly welcome!
Please, see Issues section.
You can find more information about this project in this blog post.