Feel 5.9.1
The best way to improve your game's feel and make it extra juicy
Loading...
Searching...
No Matches
MoreMountains.Feedbacks.MMFeedback Class Referenceabstract

A base class, meant to be extended, defining a Feedback. A Feedback is an action triggered by a MMFeedbacks, usually in reaction to the player's input or actions, to help communicate both emotion and legibility, improving game feel. To create a new feedback, extend this class and override its Custom methods, declared at the end of this class. You can look at the many examples for reference. More...

Inheritance diagram for MoreMountains.Feedbacks.MMFeedback:
MoreMountains.Feedbacks.MMFeedbackBase

Public Member Functions

virtual MMChannelData ChannelData (int channel)
virtual void Initialization (GameObject owner)
 Initializes the feedback and its timing related variables.
virtual void Play (Vector3 position, float feedbacksIntensity=1.0f)
 Plays the feedback.
virtual void Stop (Vector3 position, float feedbacksIntensity=1.0f)
 Stops all feedbacks from playing. Will stop repeating feedbacks, and call custom stop implementations.
virtual void ResetFeedback ()
 Calls this feedback's custom reset.
virtual void SetSequence (MMSequence newSequence)
 Use this method to change this feedback's sequence at runtime.
virtual void SetDelayBetweenRepeats (float delay)
 Use this method to specify a new delay between repeats at runtime.
virtual void SetInitialDelay (float delay)
 Use this method to specify a new initial delay at runtime.

Public Attributes

bool Active = true
 whether or not this feedback is active
string Label = "MMFeedback"
 the name of this feedback to display in the inspector
float Chance = 100f
 the chance of this feedback happening (in percent : 100 : happens all the time, 0 : never happens, 50 : happens once every two calls, etc)
MMFeedbackTiming Timing
 a number of timing-related values (delay, repeat, etc)
bool DebugActive = false
 whether or not this feedback is in debug mode

Protected Member Functions

virtual void OnEnable ()
virtual IEnumerator PlayCoroutine (Vector3 position, float feedbacksIntensity=1.0f)
 An internal coroutine delaying the initial play of the feedback.
virtual void RegularPlay (Vector3 position, float feedbacksIntensity=1.0f)
 Triggers delaying coroutines if needed.
virtual IEnumerator InfinitePlay (Vector3 position, float feedbacksIntensity=1.0f)
 Internal coroutine used for repeated play without end.
virtual IEnumerator RepeatedPlay (Vector3 position, float feedbacksIntensity=1.0f)
 Internal coroutine used for repeated play.
virtual IEnumerator SequenceCoroutine (Vector3 position, float feedbacksIntensity=1.0f)
 A coroutine used to play this feedback on a sequence.
virtual float ApplyDirection (float normalizedTime)
 Returns a new value of the normalized time based on the current play direction of this feedback.
virtual float ApplyTimeMultiplier (float duration)
 Applies the host MMFeedbacks' time multiplier to this feedback.
virtual void CustomInitialization (GameObject owner)
 This method describes all custom initialization processes the feedback requires, in addition to the main Initialization method.
void CustomPlayFeedback (Vector3 position, float feedbacksIntensity=1.0f)
 This method describes what happens when the feedback gets played.
virtual void CustomStopFeedback (Vector3 position, float feedbacksIntensity=1.0f)
 This method describes what happens when the feedback gets stopped.
virtual void CustomReset ()
 This method describes what happens when the feedback gets reset.

Protected Attributes

float _lastPlayTimestamp = -1f
int _playsLeft
bool _initialized = false
Coroutine _playCoroutine
Coroutine _infinitePlayCoroutine
Coroutine _sequenceCoroutine
Coroutine _repeatedPlayCoroutine
int _sequenceTrackID = 0
MMFeedbacks _hostMMFeedbacks
float _beatInterval
bool BeatThisFrame = false
int LastBeatIndex = 0
int CurrentSequenceIndex = 0
float LastBeatTimestamp = 0f
bool _isHostMMFeedbacksNotNull
MMChannelData _channelData

Properties

GameObject Owner [get, set]
 the Owner of the feedback, as defined when calling the Initialization method
virtual IEnumerator Pause [get]
 set this to true if your feedback should pause the execution of the feedback sequence
virtual bool HoldingPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run
virtual bool LooperPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again
virtual bool ScriptDrivenPause [get, set]
 if this is true, this feedback will pause and wait until Resume() is called on its parent MMFeedbacks to resume execution
virtual float ScriptDrivenPauseAutoResume [get, set]
 if this is a positive value, the feedback will auto resume after that duration if it hasn't been resumed via script already
virtual bool LooperStart [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again
virtual bool InCooldown [get]
 returns true if this feedback is in cooldown at this time (and thus can't play), false otherwise
virtual bool IsPlaying [get, set]
 if this is true, this feedback is currently playing
float FeedbackTime [get]
 the time (or unscaled time) based on the selected Timing settings
float FeedbackDeltaTime [get]
 the delta time (or unscaled delta time) based on the selected Timing settings
float TotalDuration [get]
 The total duration of this feedback : total = initial delay + duration * (number of repeats + delay between repeats)
virtual float FeedbackStartedAt [get]
virtual float FeedbackDuration [get, set]
virtual bool FeedbackPlaying [get]
 whether or not this feedback is playing right now
virtual bool NormalPlayDirection [get]
 Returns true if this feedback should play normally, or false if it should play in rewind.
virtual bool ShouldPlayInThisSequenceDirection [get]
 Returns true if this feedback should play in the current parent MMFeedbacks direction, according to its MMFeedbacksDirectionCondition setting.
virtual float FinalNormalizedTime [get]
 Returns the t value at which to evaluate a curve at the end of this feedback's play time.

Detailed Description

A base class, meant to be extended, defining a Feedback. A Feedback is an action triggered by a MMFeedbacks, usually in reaction to the player's input or actions, to help communicate both emotion and legibility, improving game feel. To create a new feedback, extend this class and override its Custom methods, declared at the end of this class. You can look at the many examples for reference.

Member Function Documentation

◆ ApplyDirection()

virtual float MoreMountains.Feedbacks.MMFeedback.ApplyDirection ( float normalizedTime)
protectedvirtual

Returns a new value of the normalized time based on the current play direction of this feedback.

Parameters
normalizedTime
Returns

◆ ApplyTimeMultiplier()

virtual float MoreMountains.Feedbacks.MMFeedback.ApplyTimeMultiplier ( float duration)
protectedvirtual

Applies the host MMFeedbacks' time multiplier to this feedback.

Parameters
duration
Returns

◆ ChannelData()

virtual MMChannelData MoreMountains.Feedbacks.MMFeedback.ChannelData ( int channel)
virtual

◆ CustomInitialization()

virtual void MoreMountains.Feedbacks.MMFeedback.CustomInitialization ( GameObject owner)
protectedvirtual

This method describes all custom initialization processes the feedback requires, in addition to the main Initialization method.

Parameters
owner

Reimplemented in MoreMountains.Feedbacks.MMFeedbackBase.

◆ CustomPlayFeedback()

void MoreMountains.Feedbacks.MMFeedback.CustomPlayFeedback ( Vector3 position,
float feedbacksIntensity = 1.0f )
abstractprotected

This method describes what happens when the feedback gets played.

Parameters
position
feedbacksIntensity

◆ CustomReset()

virtual void MoreMountains.Feedbacks.MMFeedback.CustomReset ( )
protectedvirtual

This method describes what happens when the feedback gets reset.

◆ CustomStopFeedback()

virtual void MoreMountains.Feedbacks.MMFeedback.CustomStopFeedback ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

This method describes what happens when the feedback gets stopped.

Parameters
position
feedbacksIntensity

Reimplemented in MoreMountains.Feedbacks.MMFeedbackBase.

◆ InfinitePlay()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.InfinitePlay ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

Internal coroutine used for repeated play without end.

Parameters
position
feedbacksIntensity
Returns

◆ Initialization()

virtual void MoreMountains.Feedbacks.MMFeedback.Initialization ( GameObject owner)
virtual

Initializes the feedback and its timing related variables.

Parameters
owner

◆ OnEnable()

virtual void MoreMountains.Feedbacks.MMFeedback.OnEnable ( )
protectedvirtual

◆ Play()

virtual void MoreMountains.Feedbacks.MMFeedback.Play ( Vector3 position,
float feedbacksIntensity = 1::0f )
virtual

Plays the feedback.

Parameters
position
feedbacksIntensity

◆ PlayCoroutine()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.PlayCoroutine ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

An internal coroutine delaying the initial play of the feedback.

Parameters
position
feedbacksIntensity
Returns

◆ RegularPlay()

virtual void MoreMountains.Feedbacks.MMFeedback.RegularPlay ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

Triggers delaying coroutines if needed.

Parameters
position
feedbacksIntensity

◆ RepeatedPlay()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.RepeatedPlay ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

Internal coroutine used for repeated play.

Parameters
position
feedbacksIntensity
Returns

◆ ResetFeedback()

virtual void MoreMountains.Feedbacks.MMFeedback.ResetFeedback ( )
virtual

Calls this feedback's custom reset.

◆ SequenceCoroutine()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.SequenceCoroutine ( Vector3 position,
float feedbacksIntensity = 1::0f )
protectedvirtual

A coroutine used to play this feedback on a sequence.

Parameters
position
feedbacksIntensity
Returns

◆ SetDelayBetweenRepeats()

virtual void MoreMountains.Feedbacks.MMFeedback.SetDelayBetweenRepeats ( float delay)
virtual

Use this method to specify a new delay between repeats at runtime.

Parameters
delay

◆ SetInitialDelay()

virtual void MoreMountains.Feedbacks.MMFeedback.SetInitialDelay ( float delay)
virtual

Use this method to specify a new initial delay at runtime.

Parameters
delay

◆ SetSequence()

virtual void MoreMountains.Feedbacks.MMFeedback.SetSequence ( MMSequence newSequence)
virtual

Use this method to change this feedback's sequence at runtime.

Parameters
newSequence

◆ Stop()

virtual void MoreMountains.Feedbacks.MMFeedback.Stop ( Vector3 position,
float feedbacksIntensity = 1::0f )
virtual

Stops all feedbacks from playing. Will stop repeating feedbacks, and call custom stop implementations.

Parameters
position
feedbacksIntensity

Member Data Documentation

◆ _beatInterval

float MoreMountains.Feedbacks.MMFeedback._beatInterval
protected

◆ _channelData

MMChannelData MoreMountains.Feedbacks.MMFeedback._channelData
protected

◆ _hostMMFeedbacks

MMFeedbacks MoreMountains.Feedbacks.MMFeedback._hostMMFeedbacks
protected

◆ _infinitePlayCoroutine

Coroutine MoreMountains.Feedbacks.MMFeedback._infinitePlayCoroutine
protected

◆ _initialized

bool MoreMountains.Feedbacks.MMFeedback._initialized = false
protected

◆ _isHostMMFeedbacksNotNull

bool MoreMountains.Feedbacks.MMFeedback._isHostMMFeedbacksNotNull
protected

◆ _lastPlayTimestamp

float MoreMountains.Feedbacks.MMFeedback._lastPlayTimestamp = -1f
protected

◆ _playCoroutine

Coroutine MoreMountains.Feedbacks.MMFeedback._playCoroutine
protected

◆ _playsLeft

int MoreMountains.Feedbacks.MMFeedback._playsLeft
protected

◆ _repeatedPlayCoroutine

Coroutine MoreMountains.Feedbacks.MMFeedback._repeatedPlayCoroutine
protected

◆ _sequenceCoroutine

Coroutine MoreMountains.Feedbacks.MMFeedback._sequenceCoroutine
protected

◆ _sequenceTrackID

int MoreMountains.Feedbacks.MMFeedback._sequenceTrackID = 0
protected

◆ Active

bool MoreMountains.Feedbacks.MMFeedback.Active = true

whether or not this feedback is active

◆ BeatThisFrame

bool MoreMountains.Feedbacks.MMFeedback.BeatThisFrame = false
protected

◆ Chance

float MoreMountains.Feedbacks.MMFeedback.Chance = 100f

the chance of this feedback happening (in percent : 100 : happens all the time, 0 : never happens, 50 : happens once every two calls, etc)

◆ CurrentSequenceIndex

int MoreMountains.Feedbacks.MMFeedback.CurrentSequenceIndex = 0
protected

◆ DebugActive

bool MoreMountains.Feedbacks.MMFeedback.DebugActive = false

whether or not this feedback is in debug mode

◆ Label

string MoreMountains.Feedbacks.MMFeedback.Label = "MMFeedback"

the name of this feedback to display in the inspector

◆ LastBeatIndex

int MoreMountains.Feedbacks.MMFeedback.LastBeatIndex = 0
protected

◆ LastBeatTimestamp

float MoreMountains.Feedbacks.MMFeedback.LastBeatTimestamp = 0f
protected

◆ Timing

MMFeedbackTiming MoreMountains.Feedbacks.MMFeedback.Timing

a number of timing-related values (delay, repeat, etc)

Property Documentation

◆ FeedbackDeltaTime

float MoreMountains.Feedbacks.MMFeedback.FeedbackDeltaTime
get

the delta time (or unscaled delta time) based on the selected Timing settings

◆ FeedbackDuration

virtual float MoreMountains.Feedbacks.MMFeedback.FeedbackDuration
getset

◆ FeedbackPlaying

virtual bool MoreMountains.Feedbacks.MMFeedback.FeedbackPlaying
get

whether or not this feedback is playing right now

◆ FeedbackStartedAt

virtual float MoreMountains.Feedbacks.MMFeedback.FeedbackStartedAt
get

◆ FeedbackTime

float MoreMountains.Feedbacks.MMFeedback.FeedbackTime
get

the time (or unscaled time) based on the selected Timing settings

◆ FinalNormalizedTime

virtual float MoreMountains.Feedbacks.MMFeedback.FinalNormalizedTime
getprotected

Returns the t value at which to evaluate a curve at the end of this feedback's play time.

◆ HoldingPause

virtual bool MoreMountains.Feedbacks.MMFeedback.HoldingPause
get

if this is true, this feedback will wait until all previous feedbacks have run

◆ InCooldown

virtual bool MoreMountains.Feedbacks.MMFeedback.InCooldown
get

returns true if this feedback is in cooldown at this time (and thus can't play), false otherwise

an overridable color for your feedback, that can be redefined per feedback. White is the only reserved color, and the feedback will revert to normal (light or dark skin) when left to White

◆ IsPlaying

virtual bool MoreMountains.Feedbacks.MMFeedback.IsPlaying
getset

if this is true, this feedback is currently playing

◆ LooperPause

virtual bool MoreMountains.Feedbacks.MMFeedback.LooperPause
get

if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again

◆ LooperStart

virtual bool MoreMountains.Feedbacks.MMFeedback.LooperStart
get

if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again

◆ NormalPlayDirection

virtual bool MoreMountains.Feedbacks.MMFeedback.NormalPlayDirection
get

Returns true if this feedback should play normally, or false if it should play in rewind.

◆ Owner

GameObject MoreMountains.Feedbacks.MMFeedback.Owner
getset

the Owner of the feedback, as defined when calling the Initialization method

◆ Pause

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.Pause
get

set this to true if your feedback should pause the execution of the feedback sequence

◆ ScriptDrivenPause

virtual bool MoreMountains.Feedbacks.MMFeedback.ScriptDrivenPause
getset

if this is true, this feedback will pause and wait until Resume() is called on its parent MMFeedbacks to resume execution

◆ ScriptDrivenPauseAutoResume

virtual float MoreMountains.Feedbacks.MMFeedback.ScriptDrivenPauseAutoResume
getset

if this is a positive value, the feedback will auto resume after that duration if it hasn't been resumed via script already

◆ ShouldPlayInThisSequenceDirection

virtual bool MoreMountains.Feedbacks.MMFeedback.ShouldPlayInThisSequenceDirection
get

Returns true if this feedback should play in the current parent MMFeedbacks direction, according to its MMFeedbacksDirectionCondition setting.

◆ TotalDuration

float MoreMountains.Feedbacks.MMFeedback.TotalDuration
get

The total duration of this feedback : total = initial delay + duration * (number of repeats + delay between repeats)


The documentation for this class was generated from the following file:
  • H:/Code/MoreMountains/feel/Assets/Feel/MMFeedbacks/MMFeedbacks/Core/Legacy/MMFeedback.cs