class MAGES::Interaction::BaseLocomotionProvider

Overview

The base class for locomotion providers. More…

class BaseLocomotionProvider:
    public MonoBehaviour,
    public MAGES::ILocomotionProvider
{
public:
    // properties

    ILocomotionSystem LocomotionSystem;
    LocomotionPhase LocomotionPhase;
    UnityEvent<LocomotionStartEventArgs> LocomotionStarted;
    UnityEvent<LocomotionEndEventArgs> LocomotionEnded;

    // methods

    bool CanStartLocomotion();
    bool StartLocomotion(float time = 10f);
    bool EndLocomotion();
};

// direct descendants

class SmoothMovementProvider;
class SmoothTurnProvider;
class SnapTurnProvider;

Inherited Members

public:
    // properties

    ILocomotionSystem LocomotionSystem;
    LocomotionPhase LocomotionPhase;
    UnityEvent<LocomotionStartEventArgs> LocomotionStarted;
    UnityEvent<LocomotionEndEventArgs> LocomotionEnded;

    // methods

    bool CanStartLocomotion();
    bool StartLocomotion(float time);
    bool EndLocomotion();

Detailed Documentation

The base class for locomotion providers.

Properties

ILocomotionSystem LocomotionSystem

Gets or sets the locomotion system this provider is registered with.

LocomotionPhase LocomotionPhase

Gets the current locomotion phase of this provider.

UnityEvent<LocomotionStartEventArgs> LocomotionStarted

Gets or sets the event called when a locomotion has just started.

The event arguments are only valid while the event is invoked. Do not hold reference of them.

UnityEvent<LocomotionEndEventArgs> LocomotionEnded

Gets or sets the event called when a locomotion has just finished.

The event arguments are only valid while the event is invoked. Do not hold reference of them.

Methods

bool CanStartLocomotion()

Gets if this provider can start a locomotion.

Returns:

true if can start a locomotion.

bool StartLocomotion(float time = 10f)

Starts a locomotion.

Parameters:

time

The time after which the locomotion will end automatically.

Returns:

true if the locomotion was started successfully. ie The LocomotionSystem was not busy.

bool EndLocomotion()

Ends the locomotion.

Returns:

true on success.