BSGTools

= BSG Tools =

BSGTools (BirdStreet Games Tools for short) is a series of systems, components, utilities and libraries for Unity in one convenient package.

Tutorials can be found at the bottom of this page.

GitHub Repository
https://github.com/michaeln-bsg/bsgtools

Terminology

 * Module: A larger system or tool included with BSGTools that is self sufficient, and accomplishes a larger task compared to the rest of the contents of BSGTools.


 * Entity: Any system or tool included with BSGTools, big or small. Every Module is an Entity, but not every Entity is a Module.

Project Goals
BSGTools aims to be a swiss army knife for anyone using Unity:


 * Both beginners and highly advanced users alike should find the components of this project useful.
 * No single entity of the project should be unuseful, boilerplate, reinventing the wheel, or included "just because".
 * When importing BSGTools into your project, it should feel fluid and component based. Any entity that is dependent on anything outside of Unity Basic should be packaged into a .unitypackage file and stored in the BSGTools/Extra Packs directory.

Project Restrictions
While BSGTools is an open project for anyone to contribute to, there are some restrictions so that the project goals are not compromised:


 * BSGTools is strictly in C#, the intended language for Unity. Clones of the BSGTools repository for Unityscript or Boo translations are completely acceptable, but these will not be incorporated into the repository linked above.
 * Everything entity in the project must have an open source license that allows for distribution, and is permitted for use in a paid-for game or application.
 * If an addition has no benefit for Unity, it will not be included.

Readme
The official readme for the project can be found at the repository linked above. This contains a more detailed explanation on what is included in the project, discussion of licensing, and more.

Notable Modules

 * InputMaster - An overhaul of Unity's Input system (Located in BSGTools/Utilities)
 * ParallaxDisplay - A work-in-progress parallax system that is focused on performance and infinite scrolling (Located in BSGTools/Components/2D)
 * MonoEvent - A coroutine based event system, for those who are used to doing high level scripting for their game events (Located in BSGTools/Utilities)
 * ZeroAll - A simple but incredibly useful series of editor shortcuts for resetting object positions, rotations and scale with a hotkey (Located in BSGTools/ZeroAll)
 * InGameDebugWindow - A drop-down in-game color-coded debug window with scroll-lock and clearing functions (Located in BSGTools/Components)

Project Layout
In Progress

Module Tutorials
Due to the nature of this project being comprised of a mixed bag of components, scripts and tools, every effort has gone into making sure that the layout of the project makes sense. What is not included in the project are tutorials regarding the individual 'modules' that the project includes:

InputMaster

 * InputMaster Primer - A beginner's tutorial to using InputMaster. This tutorial goes over the basics of setting up controls and a master, then using that to control and object in game.
 * InputMaster Advanced - Building off of the first tutorial to introduce more advanced functionality, such as serializing and saving control information as XML.

MonoEvent

 * MonoEvent Primer - A beginner's tutorial to using MonoEvent. This tutorial goes over the basics of creating a new event, setting up the tasks, and execution.