A set of useful tools aimed at easy and powerful architecture in Unity3D based on ScriptableObjects! In short, you use references to asset files rather than wiring up all objects in your scene directly. This leads to loosely coupled modules in your scene and code that is much easier to debug and maintain. See this great talk of Ryan Hipple at the Unite 2017 to get introduced to the concept. This library includes an extended implementation of the tools presented in the talk and much more.
- A State Machine
- Utilize the power of ScriptableObjects for State Machines
- Very flexible usage
- Includes handy Listener components
- Custom Editors for fool-proof usage
- Works with prefabs
- Photon Networking Integration
- An Event System
- Embrace the power of ScriptableObjects for Events
- Keep your systems perfectly separated
- Wire things up in the editor
- Write less code
- Photon Networking Integration
- A Variables System
- Rise with the power of ScriptableObjects for shared Variables
- Save your data to an asset file
- Dynamically reference your data from scripts
- Share data of multiple objects
- Override data when needed
- Cached Resources
- Readonly Attributes
- Many useful improvements
- Instantiate prefabs by alt-clicking them
- Editor Extensions for ReorderableLists, CustomDrawers, Buttons, ...
Open particular folders for detailed description.
- Unity 2017.1+
- .NET 4.6 or above
- Edit \Packages\manifest.json in your project folder
- Add the following line to the list of dependencies:
"com.unityenhanced": "https://github.com/hendrik-schulte/UnityEnhanced.git",
- UPM should now install UnityEnhanced
- Optional: Select the right version for Photon / SharpConfig integration
Alternatively, add the package as a git submodule in your project.
In Sourcetree:
- Click Repository > Add Submodule ...
- As Source Path / URL you specify:
[email protected]:hendrik-schulte/UnityEnhanced.git
- Set Local Relative Path to:
Assets/UnityEnhanced
- Pull submodule
Copy content of this repository to a folder named UnityEnhanced inside of your asset folder.
The package includes Assembly Definition Files. Since the Photon Networking package is optional, you may need to add or remove Photon as reference in the assembly definition. Or you can simply delete all .asmdef files.
Copyright (c) 2018, Hendrik Schulte