Getting Started
An overview of the Hydrogen Framework, how to download and use, and get up and running quickly.
An overview of the Hydrogen Framework, how to download and use, and get up and running quickly.
Hydrogen has a few easy ways to quickly get started, each one appealing to a different skill level and use case. Read through to see what suits your particular needs.
The fastest way to get Hydrogen into your project is to download the packaged version from the Unity Asset Store. There are currently two Hydrogen packages available on the Unity Asset Store. The Hydrogen package contains the framework in its entirety, but without any example content. The Hydrogen Examples package contains all of the example content, plus some other demo content meant to demonstrate how the framework may be used.
It's only natural that you would use GIT as it is our preferred way of getting access to Hydrogen.
GIT allows us to tag points in the repository, and through a nice feature from the folks at GitHub, we can treat some of those tags as release points, allowing you to access previous releases of Hydrogen. We are not sure why you would, but since it is available why not make it known about, right?
It goes without saying that any of the previous versions we cannot support. If there is a problem, try looking at the repository for any included fixes in that area of the framework.
It doesn't matter what level of developer or artist you are; these features are going to make developing with Unity easier and more efficient.
CORE | Audio Stack | A highly optimized 2D AudioClip pooling system. The only way to handle playing 2D sounds like ambience, music, button clicks, etc. |
CORE | Debug | Somebody order an in-game console? We got you covered. |
CORE | Object Pools | A critical optimization for mobile operations. If you are not using an object pooling system these days, you are living in the past. |
CORE | Web Pool | No more building coroutines to handle your web postings, you give it a destination, payload, and a callback; it handles the rest. |
PERIPHERALS | Input | A fully functional input management system that allows for adding, removing, updating, loading, and saving all in real-time. |
PLUGINS | TestFlight | An automatic installation paired with a robust implementation. |
SERIALIZATION | INI | Incase you needed to access this archaic method of storing key values. |
SERIALIZATION | JSON | Everyone's favourite web payload model. |
THREADING | Jobs | An easy to use base class system used for spreading processing across numerous threads or the ThreadPool. |
THREADING | Mesh Combiner | It's a Multi-Threaded MeshCombiner that handles everything and the kitchen sink and spits out beautifully optimized meshes. |
Class Library Documentation | We have parsed and scraped the Unity documentation to create a set of class library documentation (MonoDoc & XML formats) that can be used with MonoDevelop, Visual Studio, and Xamarin Studio, to name a few possibilities. | |
Helper Functions | A wide variety of helper functions that have come in useful over years of development makes programming for Unity even simpler. |
The framework is organized into numerous sub-folders to aid in keeping things easily found, and in order. At its root you will find the following folders:
Here is where you find some pre-made drag and drop components to drop on to your GameObjects, or you can add them by the quick add button. We've prefixed all of our component based scripts with 'h' so that they can be easily found and identified.
Some fun swag for the Unity Editor, nothing major though.
This is kind of a storage folder for things that our scripts will utilize automatically for you. We would advise not playing with this folder, hell any folders really, that much.
This is where bulk of the code is kept. It is isolated in its own namespace as to not interfere with anything else.
Pretty self explanatory don't you think?
If we've included something to make your life easier that we didn't particularly make or contribute to; this will be its home. Another way of thinking of what goes here is to associate it to third party additions.
As developers we often recognize the excellence of our peers and their efforts in creating amazing products. Sometimes, it makes sense not to try and reinvent the wheel and to stand on the shoulders of others' work. We've included some libraries from other wonderful developers, and have created wrappers to allow for their use in Unity in an amazingly simple workflow.
With thousands of Unity users already having experienced the benefits of the old MonoDevelop.Unity project, this is the spiritual successor that project.
There is something to be said about being able to see what a method does from within your chosen IDE; without having to go look it up online or in some external documentation repository. We've rewritten our old documentation crawler from the ground up to scrap and parse even more details from Unity's provided documentation in order to produce the most complete 'third party' documentation files possible.
Unfortunately, the currently bundled version of MonoDevelop with Unity has had it's MonoDoc add-in crippled. Without this functionality it is not possible to get the documentation to popup in editor. We've made Unity aware of this issue and can only hope that it will return in future releases.
Both MonoDevelop and Xamarin Studio can use the MonoDoc source repository to provide documentation for classes inside of their IDEs. The general idea here is to put the three source files (Unity.zip, Unity.tree and Unity.source) from the Extras/MonoDevelop folder into the most recent Mono.framework's MonoDoc source folder.
On a Mac, the location should look something like this:
/Library/Frameworks/Mono.framework/Versions/Current/lib/monodoc/sources
On a PC, the location should look something like this:
C:\Program Files\Mono-1.2.6\lib\monodoc\sources
If you do this correctly the documentation should automatically appear the next time that you launch your IDE of choice and are working with a project where any of the Unity class libraries are referenced. Enjoy! You would not believe how incredibly handy this is to have, and how much you will miss it when you do not have it.
Installing the xml based documentation is rather straight forward when it comes to Visual Studio, all you need to do is copy the Unity.xml file from the Extras/Visual Studio folder into where Unity keeps its referenced libraries, and after that Visual Studio takes care of the rest. You will need to move them to a folder similar, if not exactly the same as this:
C:\Program Files (x86)\Unity\Editor\Data\Managed
Just like that, you will have access to the documentation while you type.
We've created some example content for Hydrogen that can be found in the Hydrogen Examples package on the Unity Asset Store.
Unity Asset Store GitHub Project
These in no way represent a complete overview of the features that Hydrogen offers, they are merely test scenes that have been setup to make sure that certain components work and some demo implementations used in real world applications.
A nice drop in solution to managing inputs within Unity showing dynamic changes at runtime.
Utilizing the Web Pool system, this example sends a JSON call and handles it's results back when it arrives.
Hydrogen is released under the MIT license and is copyright 2014 dotBunny. All source files contain the following header, with the exception of the Unity Asset Store package as it falls under a separate license set forth by Unity.
//
// [FileName]
//
// Author:
// [Author] <[Authors Email]>
//
// Copyright (c) 2014 dotBunny Inc. (http://www.dotbunny.com)
//
// 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.