Home

Awesome

TODO OBSOLETE - See Spacepuppy Unity Framework 4.0

https://github.com/lordofduct/spacepuppy-unity-framework-4.0

This version of spacepuppy is now obsolete. We've moved to a newer version of Unity that supports the newer C# versions in the compiler.

This framework will remain for posterity sake.

spacepuppy-unity-framwork-3.0

A modular framework of tools for use with the Unity game engine version 2017.3.

This framework starts with the base portion of SpaceuppyUnityFramework which contains all the general tools needed by each module. All subsequent modules require this dll to be included.

The base framework includes a number of types. Several of them are extensions or replacements of similar Unity types. Often I designed these tools years before Unity added their versions (a Coroutine object token, custom yield instructions, UnityEvent). Even though Unity has added/improved their versions of these objects, I still prefer my versions as they often have more features than the built-in Unity ones.

After adding the SpaceuppyUnityFramework you can pick and choose the modules to include with it for those tools sets.

Quick Import

Download the latest build from the github project and unzip contents into your project's Asset folder.

Quick Build

First open 'dobuild.release.bat' and make sure the path to MSBuild.exe matches where you have it installed on your computer.

Run 'dobuild.release.bat'.

A 'Builds' folder will be created with a 'SpaceuppyUnityFramework' inside of it.

Delete any module's dll's you don't want from inside the 'SpaceuppyUnityFramework' folder. You could also have commented out the xcopy lines for any modules you don't want in the bat file.

Copy the 'SpaceuppyUnityFramework' folder in there into your project wherever you'd like (this is the same thing you would find in the downloaded builds from the github page).

Manual Build

Open the SpacepuppyUnityFramework.sln in Visual Studio (or other suitable IDE) and select Build like you would any project.

Traverse through each module's output directories (%module%/bin/Release) and copy the appropriate *.dll for that module into an appropriate folder in Assets. I prefer to name mine 'Assets/SpaceuppyUnityFramework'.

Traverse through each module's editor output directories (%module%editor/bin/Release) and copy the appropriate *.dll for that module editor into an appropriate Editor folder in Assets. I prefer to name mine 'Assets/SpacepuppyUnityFramework/Editor'.

Go into the 'Resources' folder.

If you use the SPSensors module, copy 'Shaders' folder into the previously created editor folder for the editor script dll's.

Make sure you have 'Visible Meta Files' enabled in 'Edit->Project Settings->Editor Settings'.

Copy 'SpacepuppyUnityFramework.dll.meta' to the same folder as 'SpacepuppyUnityFramework.dll', overwrite if Unity already created the meta file.

If you don't show meta files in your project, and would like to keep it that way, you may have to manually configure the execution order. In this case open the SpacepuppyUnityFramework.dll.meta and locate the 'executionOrder' line, in your project go to 'Edit->Project Settings->Script Execution Order' and in the appropriate screen drag in the matching scripts and set them to the corresponding values. It is advised to use the included meta file though as it's easier.

License

Copyright (c) 2015, Dylan Engelman, Jupiter Lighthouse Studio

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.