uState is an open-source (free) state machine and interface generator that handles your states, conditions, transitions and generates interfaces for your implementations.
Interface Generation allows for easy implementation
Simply attach your model to a State Machine Component and add your implementation scripts.
Finally…
I love building tools for developers because I understand the complexity of problems that we (game developers) face when starting or joining a project. I hope that these tools can be of use to someone and look forward to seeing what comes of it!
Looks a bit like ICode. From a quick glance ICode looks more focused on visual coding, whereas uState is more focused on supporting a text-based coding workflow.
By the way: “Error: You do not have access to the wiki.”
uState is definitely not intended to be a scripting system. It is a state modeling & controller that allows you to create states and transitions for state models. It generates c# interfaces for the states so you can implement them.
I am not familiar with ICode, however they are a for profit asset and this is an open-source asset where anyone can fork and contribute.
Actually I’m not a big fan of visual scripting assets that depend on Unity’s serialization, due to the tendency to corrupt and the lack of readability (even with Force Text), easy versioning and diffing. In uState at least the state machines are serialized into separate files, which is an improvement over serializing settings into the scene file.
This is a rundown of what happens in the background of uState
StateMachine is a Monobehaviour component that executes a runtime-instance of a model.
A Model is a serialized object that contains the visual structure of the state model along with Transitions, Properties and States.
The StateMachine looks for C# interfaces such as IEnter{StateName}, or IExit{StateName} on any Monobehaviour that is attached to the same GameObject as the StateMachine component.
The programmer can then create specific implementations of the states using the interfaces, whilst he can (or someone else) generates the state model.
This may be the opposite of what you were thinking it was, but this has allowed our team to create MVC style menu controllers and other character systems.
I look forward to seeing what people can do with this! Please fork and contribute if you have any ideas!