In this section you will learn about warp providers.
Technical Aspects
Warp Providers are components that provide active interaction with target points.
Example: the built-in MantleComponent will search for the climbable obstacle point, and then pass it to the Motion Warping component.
This plugin offers a common interface - IWarpProvider - that can be used to create custom Warp Providers. This interface contains a single method called Interact that returns the result of a check:
WarpProviderInterface.cs
publicstructWarpInteractionResult{publicWarpPoint[]points;// Target points.publicMotionWarpingAssetasset;// Warping asset with settings. publicboolsuccess;// If the interaction can be started.publicboolIsValid(){returnsuccess&&points!=null&&asset!=null;}}publicinterfaceIWarpPointProvider{publicWarpInteractionResultInteract(GameObjectinstigator);}
The plugin supports both moving and static obstacles out of the box. Here is how to correctly pass the data for each obstacle type:
Moving obstacles
To make the Warp Point depend on a specific transform, make sure to specify that target transform, and convert the point world coordinates to that transform's space:
Static obstacles
If you want the Warp Point to be static in world space, make sure to pass the world coordinates of the desired interaction point:
Example
Here is how to use a Warp Provider in code. We are going to use VaultComponent in this example:
It is also possible to pass the gameObject as a parameter in the Interact method:
In this case, the Motion Warping will try to get the first component that implements the IWarpProvider interface and interact with it.