Frequently creating and destroying objects during runtime can easily be a performance bottleneck. Using an object pool that recycles objects is a great design pattern which reduces the creation and destruction overhead.
2x State Machines
Structuring your code with a state machine provides a solid work flow and produces cleaner code which is easier to follow and debug. The state machine design pattern is most commonly used in the development of AI but is also suitable for anything that you previously have used if or case to handle actions. When working with large classes, separating them into multiple classes can be beneficial and you can then use StateMachineClass keep the code structured.
Storing important data such as passwords and API keys openly should be avoided whenever possible, using the Encryption Manager and the Encrypt/Decrypt functions you can achieve this with minimal effort!
Fill classes from JSON formatted strings and convert classes into JSON! Instead of manually accessing the data and setting the correct members inside the class the DataFiller can do this Automatically. Useful for converting database data into classes without a lot of manual work!
Starting routines from classes that is not derived from MonoBehaviour isn't possible but with this neat script any class can define a routine and use the Coroutiner to run it!
In the scene view Unity's built in debug info is great, but it can't be used in runtime, the Debug Painter can. It can draw a multitude of line based shapes on any platform! More shapes will be added through updates.
Mail support, custom reports and the log display itself. Getting user feedback at runtime can be crucial to bug fixing and improvement of your game during the development. Using the Logger you can provide your user with a simple but effective way of communicating with you, reporting issues and providing you with the log output and stack trace to backup the report.
Editor GUI Extension
Use the EditorGUIEx class to produce a cleaner looking editor UI with groups that can be toggled and disabled. Automatically draws the UI from a SerializedObject or manually using EditorGUI/EditorGUILayout. Inject your own custom draw classes to customize the automatic procedure.
Editor Input Window
Template based input window, one line of code to create the window with a multitude of inputs. Can easily be extended to support additional data types and amount of fields!
Automatic update of the build version after each build! Makes life easier when working with testers, making sure that they have the latest build and doesn't report issues for old versions.
Helper Classes - Editor Screenshot & Fetch Object Asset
Small helpers classes that makes life easier!
Fecth Object Asset
Fetching objects from outside of the Unity assets folder by manual labor (copy/paste) can be tiresome, instead the FetchObjectAsset can with a push of a button copy files into your project.
Taking screenshots of the game view inside Unity can be useful both for rending graphics for use in icons, etc. And as a memory tool during development to store images of issues or states of the game.
Source code included!
Use some or all of the features included in this package or extend it as you wish! Visit the support site
to request additional functionality or changes to the current code base.
Tutorials and Support
For us it is important that everyone can use our plugins and we want this site to be alive and filled with useful information. Therefor we create detailed tutorials, use doxygen documentation and forums in which all questions are welcome, the documentation will be updated when needed.