SolarWind Actions is an essential tool for every game or app. It provides a framework for lazy execution of any type of complex action sequence. This allows you to create sophisticated sequences of actions, define the conditions under which each sub-action executes, and perform various convenience operations on the actions. It also lets you decouple the creation of the actions and their execution, which results to a much more robust architecture.
Using this plugin can literally save you hundreds of development hours.
SolarWind Actions has many applications. Some of them are:
- Delayed execution: Scheduling code for later execution has never been more flexible.
- Tutorials: Creating tutorials is much easier, as you can build very complex behaviors with a few lines of code, and then make changes just as easily.
- Undo/Redo: Creating and executing commands and their reverse counterpart is effortless.
- Editor Scripts: You can easily create operations that manipulate scenes, objects, etc, making your scripts much easier to build and maintain.
- Callbacks: Actions are a much more powerful alternative to System.Actions when used as callbacks.
- Animations & Sounds: The Action framework lets you handle sequences of animations and sounds combined with other actions very easily (tween animations are not included in the framework)
- Business logic: Building a sophisticated business logic can be a lot more flexible.
- Any kind of functionality: Having complex operations as standalone actions allows you to reuse large parts of your code in a very effective and elegant way.
- A robust, flexible and powerful framework for executing complex sequences of actions.
- The ability to decouple the action creation from the execution, thus performing any action lazily.
- The ability to abort, fast-forward, reset and repeat actions.
- An API that results into clean and well-designed code.
- Endless extensibility: you can create any action you want, often with just a few lines of code.
There are many powerful actions ready for you to use:
- SequencialCompositeAction: executes a list of actions one at the time.
- ConcurrentCompositeAction: executes a list of actions all at once.
- Delay: waits for a certain amount of time.
- DelegateAction: invokes a certain function.
- TriggeredAction: initially idle, listens for a certain condition and only starts execution when the condition becomes true.
- PredicateBasedDecorator: if a condition is true, it performs a certain action, otherwise it does nothing.
- ExceptionBasedDualAction: executes an action and if it throws an exception it executes another action.
- DebugLog, DebugWarning, DebugError: logs into the Unity console.
- ActivateGameObject, DeactivateGameObject: make a game object active or inactive.
- Repeat: executes a given action indefinitely or for a certain number of times.
- FFProtect: protects an action from being fast-forwarded.
- Many more: InstantDecorator, TagAction, Abort, Reset, AutoReset, NullAction, FFProtectByCount, FFPRotectByState.
There are also various abstract classes, that provide very important and reusable functionality that you can build upon, in order to create the custom logic for your project.
- AbstractAction: the most simple base for any custom action, provides all of the default functionality any action should have.
- AbstractActionDecorator: the base for any action that decorates another action.
- AbstractDualResultAction: the base for any action that has two other actions and executes one or the other depending on a certain condition.