Total Eclipse

Game Development & Consulting

SolarWind Actions Unity Plugin

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.