MMFeedbacks  v1.6
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Properties | List of all members
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.MMFeedbackAnimation MoreMountains.Feedbacks.MMFeedbackAudioFilterDistortion MoreMountains.Feedbacks.MMFeedbackAudioFilterEcho MoreMountains.Feedbacks.MMFeedbackAudioFilterHighPass MoreMountains.Feedbacks.MMFeedbackAudioFilterLowPass MoreMountains.Feedbacks.MMFeedbackAudioFilterReverb MoreMountains.Feedbacks.MMFeedbackAudioSource MoreMountains.Feedbacks.MMFeedbackAudioSourcePitch MoreMountains.Feedbacks.MMFeedbackAudioSourceStereoPan MoreMountains.Feedbacks.MMFeedbackAudioSourceVolume MoreMountains.Feedbacks.MMFeedbackBase MoreMountains.Feedbacks.MMFeedbackBlink MoreMountains.Feedbacks.MMFeedbackCameraClippingPlanes MoreMountains.Feedbacks.MMFeedbackCameraFieldOfView MoreMountains.Feedbacks.MMFeedbackCameraOrthographicSize MoreMountains.Feedbacks.MMFeedbackCameraShake MoreMountains.Feedbacks.MMFeedbackCameraZoom MoreMountains.Feedbacks.MMFeedbackDebugLog MoreMountains.Feedbacks.MMFeedbackEnable MoreMountains.Feedbacks.MMFeedbackEvents MoreMountains.Feedbacks.MMFeedbackFade MoreMountains.Feedbacks.MMFeedbackFeedbacks MoreMountains.Feedbacks.MMFeedbackFlash MoreMountains.Feedbacks.MMFeedbackFlicker MoreMountains.Feedbacks.MMFeedbackFloatController MoreMountains.Feedbacks.MMFeedbackFreezeFrame MoreMountains.Feedbacks.MMFeedbackImage MoreMountains.Feedbacks.MMFeedbackInstantiateObject MoreMountains.Feedbacks.MMFeedbackLight MoreMountains.Feedbacks.MMFeedbackMaterial MoreMountains.Feedbacks.MMFeedbackParticles MoreMountains.Feedbacks.MMFeedbackParticlesInstantiation MoreMountains.Feedbacks.MMFeedbackPause MoreMountains.Feedbacks.MMFeedbackPosition MoreMountains.Feedbacks.MMFeedbackPPMovingFilter MoreMountains.Feedbacks.MMFeedbackProperty MoreMountains.Feedbacks.MMFeedbackRadioSignal MoreMountains.Feedbacks.MMFeedbackRigidbody MoreMountains.Feedbacks.MMFeedbackRigidbody2D MoreMountains.Feedbacks.MMFeedbackRotation MoreMountains.Feedbacks.MMFeedbackScale MoreMountains.Feedbacks.MMFeedbackSetActive MoreMountains.Feedbacks.MMFeedbackShaderController MoreMountains.Feedbacks.MMFeedbackSound MoreMountains.Feedbacks.MMFeedbackSpriteRenderer MoreMountains.Feedbacks.MMFeedbackTimescaleModifier MoreMountains.Feedbacks.MMFeedbackWiggle MoreMountains.FeedbacksForThirdParty.MMFeedbackBloom MoreMountains.FeedbacksForThirdParty.MMFeedbackBloom_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackChromaticAberration MoreMountains.FeedbacksForThirdParty.MMFeedbackChromaticAberration_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackCinemachineImpulse MoreMountains.FeedbacksForThirdParty.MMFeedbackCinemachineTransition MoreMountains.FeedbacksForThirdParty.MMFeedbackColorAdjustments_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackColorGrading MoreMountains.FeedbacksForThirdParty.MMFeedbackDepthOfField MoreMountains.FeedbacksForThirdParty.MMFeedbackDepthOfField_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackGlobalPPVolumeAutoBlend MoreMountains.FeedbacksForThirdParty.MMFeedbackGlobalPPVolumeAutoBlend_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackLensDistortion MoreMountains.FeedbacksForThirdParty.MMFeedbackLensDistortion_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackMotionBlur_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackPaniniProjection_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackVignette MoreMountains.FeedbacksForThirdParty.MMFeedbackVignette_URP MoreMountains.FeedbacksForThirdParty.MMFeedbackWhiteBalance_URP

Public Member Functions

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

Public Attributes

bool Active = true
 whether or not this feedback is active More...
 
string Label = "MMFeedback"
 the name of this feedback to display in the inspector More...
 
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) More...
 
MMFeedbackTiming Timing
 a number of timing-related values (delay, repeat, etc) More...
 
bool DebugActive = false
 whether or not this feedback is in debug mode More...
 

Protected Member Functions

virtual IEnumerator PlayCoroutine (Vector3 position, float attenuation=1.0f)
 An internal coroutine delaying the initial play of the feedback More...
 
virtual void RegularPlay (Vector3 position, float attenuation=1.0f)
 Triggers delaying coroutines if needed More...
 
virtual IEnumerator InfinitePlay (Vector3 position, float attenuation=1.0f)
 Internal coroutine used for repeated play without end More...
 
virtual IEnumerator RepeatedPlay (Vector3 position, float attenuation=1.0f)
 Internal coroutine used for repeated play More...
 
virtual IEnumerator SequenceCoroutine (Vector3 position, float attenuation=1.0f)
 A coroutine used to play this feedback on a sequence More...
 
virtual void CustomInitialization (GameObject owner)
 This method describes all custom initialization processes the feedback requires, in addition to the main Initialization method More...
 
abstract void CustomPlayFeedback (Vector3 position, float attenuation=1.0f)
 This method describes what happens when the feedback gets played More...
 
virtual void CustomStopFeedback (Vector3 position, float attenuation=1.0f)
 This method describes what happens when the feedback gets stopped More...
 
virtual void CustomReset ()
 This method describes what happens when the feedback gets reset More...
 

Protected Attributes

WaitForSeconds _initialDelayWaitForSeconds
 
WaitForSeconds _betweenDelayWaitForSeconds
 
WaitForSeconds _sequenceDelayWaitForSeconds
 
float _lastPlayTimestamp = -1f
 
int _playsLeft
 
bool _initialized = false
 
Coroutine _playCoroutine
 
Coroutine _infinitePlayCoroutine
 
Coroutine _sequenceCoroutine
 
Coroutine _repeatedPlayCoroutine
 
int _sequenceTrackID = 0
 
float _beatInterval
 
bool BeatThisFrame = false
 
int LastBeatIndex = 0
 
int CurrentSequenceIndex = 0
 
float LastBeatTimestamp = 0f
 

Properties

GameObject Owner [get, set]
 the Owner of the feedback, as defined when calling the Initialization method More...
 
virtual YieldInstruction Pause [get]
 set this to true if your feedback should pause the execution of the feedback sequence More...
 
virtual bool HoldingPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run More...
 
virtual bool LooperPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again More...
 
virtual bool LooperStart [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again More...
 
virtual bool InCooldown [get]
 returns true if this feedback is in cooldown at this time (and thus can't play), false otherwise More...
 
float FeedbackTime [get]
 the time (or unscaled time) based on the selected Timing settings More...
 
float FeedbackDeltaTime [get]
 the delta time (or unscaled delta time) based on the selected Timing settings More...
 
virtual float FeedbackStartedAt [get]
 
virtual float FeedbackDuration [get]
 
virtual bool FeedbackPlaying [get]
 whether or not this feedback is playing right now More...
 

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

◆ CustomInitialization()

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

◆ CustomPlayFeedback()

abstract void MoreMountains.Feedbacks.MMFeedback.CustomPlayFeedback ( Vector3  position,
float  attenuation = 1.0f 
)
protectedpure virtual

This method describes what happens when the feedback gets played

Parameters
position
attenuation

Implemented in MoreMountains.Feedbacks.MMFeedbackParticlesInstantiation, MoreMountains.Feedbacks.MMFeedbackLight, MoreMountains.Feedbacks.MMFeedbackPosition, MoreMountains.Feedbacks.MMFeedbackSound, MoreMountains.Feedbacks.MMFeedbackBase, MoreMountains.Feedbacks.MMFeedbackFlicker, MoreMountains.Feedbacks.MMFeedbackSpriteRenderer, MoreMountains.Feedbacks.MMFeedbackShaderController, MoreMountains.Feedbacks.MMFeedbackImage, MoreMountains.Feedbacks.MMFeedbackFloatController, MoreMountains.Feedbacks.MMFeedbackRotation, MoreMountains.Feedbacks.MMFeedbackScale, MoreMountains.Feedbacks.MMFeedbackProperty, MoreMountains.FeedbacksForThirdParty.MMFeedbackColorGrading, MoreMountains.FeedbacksForThirdParty.MMFeedbackColorAdjustments_URP, MoreMountains.Feedbacks.MMFeedbackInstantiateObject, MoreMountains.FeedbacksForThirdParty.MMFeedbackGlobalPPVolumeAutoBlend, MoreMountains.FeedbacksForThirdParty.MMFeedbackDepthOfField, MoreMountains.FeedbacksForThirdParty.MMFeedbackDepthOfField_URP, MoreMountains.FeedbacksForThirdParty.MMFeedbackGlobalPPVolumeAutoBlend_URP, MoreMountains.Feedbacks.MMFeedbackEnable, MoreMountains.Feedbacks.MMFeedbackSetActive, MoreMountains.Feedbacks.MMFeedbackAudioSource, MoreMountains.Feedbacks.MMFeedbackFade, MoreMountains.Feedbacks.MMFeedbackLooper, MoreMountains.FeedbacksForThirdParty.MMFeedbackLensDistortion, MoreMountains.FeedbacksForThirdParty.MMFeedbackLensDistortion_URP, MoreMountains.FeedbacksForThirdParty.MMFeedbackWhiteBalance_URP, MoreMountains.Feedbacks.MMFeedbackAnimation, MoreMountains.FeedbacksForThirdParty.MMFeedbackBloom, MoreMountains.FeedbacksForThirdParty.MMFeedbackBloom_URP, MoreMountains.Feedbacks.MMFeedbackCameraClippingPlanes, MoreMountains.FeedbacksForThirdParty.MMFeedbackChromaticAberration, MoreMountains.FeedbacksForThirdParty.MMFeedbackChromaticAberration_URP, MoreMountains.Feedbacks.MMFeedbackTimescaleModifier, MoreMountains.FeedbacksForThirdParty.MMFeedbackCinemachineTransition, MoreMountains.FeedbacksForThirdParty.MMFeedbackVignette, MoreMountains.FeedbacksForThirdParty.MMFeedbackMotionBlur_URP, MoreMountains.FeedbacksForThirdParty.MMFeedbackPaniniProjection_URP, MoreMountains.FeedbacksForThirdParty.MMFeedbackVignette_URP, MoreMountains.Feedbacks.MMFeedbackMaterial, MoreMountains.Feedbacks.MMFeedbackAudioSourcePitch, MoreMountains.Feedbacks.MMFeedbackAudioSourceStereoPan, MoreMountains.Feedbacks.MMFeedbackAudioSourceVolume, MoreMountains.Feedbacks.MMFeedbackFeedbacks, MoreMountains.Feedbacks.MMFeedbackAudioFilterDistortion, MoreMountains.Feedbacks.MMFeedbackAudioFilterEcho, MoreMountains.Feedbacks.MMFeedbackAudioFilterHighPass, MoreMountains.Feedbacks.MMFeedbackAudioFilterLowPass, MoreMountains.Feedbacks.MMFeedbackAudioFilterReverb, MoreMountains.Feedbacks.MMFeedbackCameraFieldOfView, MoreMountains.Feedbacks.MMFeedbackRigidbody2D, MoreMountains.Feedbacks.MMFeedbackEvents, MoreMountains.Feedbacks.MMFeedbackCameraOrthographicSize, MoreMountains.Feedbacks.MMFeedbackDebugLog, MoreMountains.Feedbacks.MMFeedbackPPMovingFilter, MoreMountains.Feedbacks.MMFeedbackParticles, MoreMountains.Feedbacks.MMFeedbackPause, MoreMountains.Feedbacks.MMFeedbackWiggle, MoreMountains.Feedbacks.MMFeedbackCameraZoom, MoreMountains.Feedbacks.MMFeedbackFlash, MoreMountains.Feedbacks.MMFeedbackRigidbody, MoreMountains.Feedbacks.MMFeedbackCameraShake, MoreMountains.Feedbacks.MMFeedbackLooperStart, MoreMountains.Feedbacks.MMFeedbackRadioSignal, MoreMountains.Feedbacks.MMFeedbackFreezeFrame, MoreMountains.Feedbacks.MMFeedbackBlink, MoreMountains.Feedbacks.MMFeedbackHoldingPause, and MoreMountains.FeedbacksForThirdParty.MMFeedbackCinemachineImpulse.

◆ CustomReset()

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

◆ CustomStopFeedback()

virtual void MoreMountains.Feedbacks.MMFeedback.CustomStopFeedback ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

◆ InfinitePlay()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.InfinitePlay ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

Internal coroutine used for repeated play without end

Parameters
position
attenuation
Returns

◆ Initialization()

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

Initializes the feedback and its timing related variables

Parameters
owner

◆ Play()

virtual void MoreMountains.Feedbacks.MMFeedback.Play ( Vector3  position,
float  attenuation = 1.0f 
)
virtual

Plays the feedback

Parameters
position
attenuation

◆ PlayCoroutine()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.PlayCoroutine ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

An internal coroutine delaying the initial play of the feedback

Parameters
position
attenuation
Returns

◆ RegularPlay()

virtual void MoreMountains.Feedbacks.MMFeedback.RegularPlay ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

Triggers delaying coroutines if needed

Parameters
position
attenuation

◆ RepeatedPlay()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedback.RepeatedPlay ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

Internal coroutine used for repeated play

Parameters
position
attenuation
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  attenuation = 1.0f 
)
protectedvirtual

A coroutine used to play this feedback on a sequence

Parameters
position
attenuation
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  attenuation = 1.0f 
)
virtual

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

Parameters
position
attenuation

Reimplemented in MoreMountains.Feedbacks.MMFeedbackAudioSource.

Member Data Documentation

◆ _beatInterval

float MoreMountains.Feedbacks.MMFeedback._beatInterval
protected

◆ _betweenDelayWaitForSeconds

WaitForSeconds MoreMountains.Feedbacks.MMFeedback._betweenDelayWaitForSeconds
protected

◆ _infinitePlayCoroutine

Coroutine MoreMountains.Feedbacks.MMFeedback._infinitePlayCoroutine
protected

◆ _initialDelayWaitForSeconds

WaitForSeconds MoreMountains.Feedbacks.MMFeedback._initialDelayWaitForSeconds
protected

◆ _initialized

bool MoreMountains.Feedbacks.MMFeedback._initialized = false
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

◆ _sequenceDelayWaitForSeconds

WaitForSeconds MoreMountains.Feedbacks.MMFeedback._sequenceDelayWaitForSeconds
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
get

◆ 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

◆ 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

◆ 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

◆ Owner

GameObject MoreMountains.Feedbacks.MMFeedback.Owner
getset

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

◆ Pause

virtual YieldInstruction MoreMountains.Feedbacks.MMFeedback.Pause
get

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


The documentation for this class was generated from the following file: