uState [OpenSource(Free)] - Mecanim Style State Machine Editor

uState is an open-source (free) state machine and interface generator that handles your states, conditions, transitions and generates interfaces for your implementations.

Fork, Clone or Download here on BitBucket
https://bitbucket.org/dklompmaker/ustate/overview

Getting Started WIKI
https://bitbucket.org/dklompmaker/ustate/wiki/Home

Feel free to fork and support this project!

Interface Generation Options per State

State to State transitions with conditions

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!

3 Likes

Really Interested making Open Source :). Now time to check and see is there can add something with my amateur knowledge

  • Uploaded a unity package the bitbucket repo.

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.”

Thanks for the heads up about 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.

Thanks and I hope you give it a try!

Thanks for fixing.

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.

On the other hand I tried to make a code-based FSM asset that visualizes connections into a node graph. Writing FSMs manually can become quite verbose unfortunately. But then I discovered the Mecanim generator API and the upcoming Playables API + graph visualizer: https://docs.google.com/document/d/1Nb7P1Ys01iOjgm6yI1JAjEjZCSIvW7x-ARtvu6TYTyY/edit#heading=h.nwrnjxndg9f0

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!

The bitbucket links are broken.

This looks exactly like what i’d need for my project.

Look like the bitbucket repo is gone. Do you have a new one and a updated link?

Would like to try your brilliant solution :slight_smile:

Does this still work? anyone know where to find it or an updated version?