Controlled Flight is an asset to be used in Unity. It provides functionality for controlling the movement of objects in realistic trajectories. The focus is on ease of use, robustness as well as realism.

You can find it in the Unity Asset Store.

There is also a free version: Controlled Flight Lite. It can be found in the Unity Asset store here.

The algorithms are based on well known, and universally used, methods used in aerospace engineering.

The asset includes:

Typical use is missile guidance and aircraft autopilots. But the algorithms are very flexible and are applicable for many use cases. It will work for controlling boats as well as submarines. The control of animal movement is also a possibility, for example birds and bats.

Start by reading the introduction. Detailed information can be found in the other pages.

The asset includes source code. A short reference of the code can be found here.

Info on the asset and requests for features can be sent to or use the form here.

More videos on YouTube.

Controlled Flight Usage

Basic setup for target guidance:

  1. Create Game Object at relevant position
  2. Add Component MissileSupervisor
  3. Select Target by dragging it to the “Target” filed in the MissileSupervisor.

Additional settings often need to be done. For example, speed may need additional control.

For path following the same procedure is valid, just input waypoint coordinates or select waypoint objects instead of selecting target.


Main Settings

The main settings are the major choices. These are: which type of trajectory is used, following a path or intercepting a target. Then the settings are done to either describe the path or assigning the target.

Guidance properties

The guidance properties are settings for the path following or target intercept algorithms.

Target intercept algorithms and settings are described here. Path following here.


Settings for the limitations and similar properties of the movement of the object. Details can be found here.

Intercept Properties

Settings for behavior of the object when intercepting the target. The target can be the last waypoint in a path with the correct settings. Details can be found here.

Launch and Speed control

The behavior of the object before launch can be adjusted here.

The speed of the object can be controlled in detail, using different methods. This is a major feature for the behavior of the object.

Detailed descriptions can be found here.


The MissileSupervisor component invokes relevant events. These events can be used to trigger functionality in other object or components. Events are described here.

Controlled Flight - Missile Supervisor Component

Advanced functionality

The main functionality is in the MissileSupervisor component. It is in many cases easy to add functionality. The new functionality can be small changes or new advanced features.

Typically the new functionality is added with components. These execute in parallel with the MissileSupervisor.

Included in Controlled Flight are a few extra component, Each seamlessly plugs in with MissileSupervisor.
Some advanced features included:

  • Advanced drag.
  • Advanced maneuver limitations.
  • Change in speed at waypoints.

Each of these are done in very few lines of code.

The advanced plug ins can be found here.