A collection of useful Unity Tools and scripts developed at the UC Riverside Brain Game Center.
Developers:
- Trevor Stavropoulos (@tstavropoulos)
- Colan Biemer (@bi3mer)
- Randy Mester (@randymester)
- Lorenzo Alamillo (@nadnbuds)
- @Jaerdon
Doxygen-built documentation available here.
Pull requests welcome.
This project has been built largely to be imported as a managed-code plugin. Within a Unity project, navigate to ${project_root}/Assets/Plugins
, and clone this repository and set it up as a submodule:
cd ${project_root}/Assets/Plugins
git clone https://github.com/UCRBrainGameCenter/BGC_Tools.git
git submodule add https://github.com/UCRBrainGameCenter/BGC_Tools.git BGC_Tools
- Easily-integrated system for managing multiple distinct user profiles in
Users.PlayerData
- User data is serialized into JSON and readily available for inspection, debugging, reproduction
- Advanced Audio synthesis library (Check out examples in
Tests.SynthesisTests
) - Fourier transforms, Spectrogram generation
- Managed code to Read and Write WAV files in
Audio.WaveEncoding
- Midi Encoding, Decoding, and Rendering (Alpha) in
Audio.Midi.MidiEncoding
IDepletable
containers, representing sets of values that can be depleted when taken, but can also be refreshed (located inDataStructures.Generic
)DepletableList<T>
will return values from an underlying collection in a fixed order, and can be refreshed to its original state (like a stack that can be reset)DepletableBag<T>
will return values in a random order from an underlying collection (like shuffle on a music player)
- Efficient
RingBuffer<T>
implementation - Several forms of
IPool
, for pooling objects
- Streamline the process of accessing data directories and subdirectories on all platforms with
IO.DataManagement
- Convenient JSON reading, parsing, and writing with
IO.FileReader
andIO.FileWriter
- Zip Compression/Decompression support
- Inclusion of LightJson
- Robust implementation of Complex number support with
Mathematics.Complex32
andMathematics.Complex64
- Fast Fourier Transforms (including for sample buffers that are not a power of 2)
- Bezier Curves
- Implementation of common math functions in
Mathematics.GeneralMath
- Number factorization, least common multiple, and combinatorics
- Numeric Recipe for the Modified Bessel Function of the First Kind
- Fast, fully-programmatic state machine implementation in
StateMachine
namespace.
- Multi-featured, convenient Modal Dialog in
UI.Dialogs.ModalDialog
- ModePanels for control of UI Frame Instances in
UI.Panels.ModePanel
- Robust Semantic Versioning struct in
Utility.ApplicationVersion
- Coroutine Management utility in
Utility.CoroutineUtility
- Local file-browser Scene and Scripts, to allow the inspection of application files on-device (
UnityAssets/Scenes/FileBrowser.unity
)