MMFeedbacks  v1.6
Public Attributes | Protected Member Functions | Properties | List of all members
MoreMountains.Feedbacks.MMFeedbackLooper Class Reference

This feedback will move the current "head" of an MMFeedbacks sequence back to another feedback above in the list. What feedback the head lands on depends on your settings : you can decide to have it loop at last pause, or at the last LoopStart feedback in the list (or both). Furthermore, you can decide to have it loop multiple times and cause a pause when met. More...

Inheritance diagram for MoreMountains.Feedbacks.MMFeedbackLooper:
MoreMountains.Feedbacks.MMFeedbackPause MoreMountains.Feedbacks.MMFeedback

Public Attributes

bool LoopAtLastPause = true
 if this is true, this feedback, when met, will cause the MMFeedbacks to reposition its 'head' to the first pause found above it (going from this feedback to the top), or to the start if none is found More...
 
bool LoopAtLastLoopStart = true
 if this is true, this feedback, when met, will cause the MMFeedbacks to reposition its 'head' to the first LoopStart feedback found above it (going from this feedback to the top), or to the start if none is found More...
 
bool InfiniteLoop = false
 if this is true, the looper will loop forever More...
 
int NumberOfLoops = 2
 how many times this loop should run More...
 
int NumberOfLoopsLeft = 1
 the amount of loops left (updated at runtime) More...
 
bool InInfiniteLoop = false
 whether we are in an infinite loop at this time or not More...
 
- Public Attributes inherited from MoreMountains.Feedbacks.MMFeedbackPause
float PauseDuration = 1f
 the duration of the pause, in seconds More...
 
- Public Attributes inherited from MoreMountains.Feedbacks.MMFeedback
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

override void CustomInitialization (GameObject owner)
 On init we initialize our number of loops left More...
 
override void CustomPlayFeedback (Vector3 position, float attenuation=1.0f)
 On play we decrease our counter and play our pause More...
 
override void CustomStopFeedback (Vector3 position, float attenuation=1)
 On custom stop, we exit our infinite loop More...
 
override void CustomReset ()
 On reset we reset our amount of loops left More...
 
- Protected Member Functions inherited from MoreMountains.Feedbacks.MMFeedbackPause
override void CustomInitialization (GameObject owner)
 On init we cache our wait for seconds More...
 
override void CustomPlayFeedback (Vector3 position, float attenuation=1.0f)
 On play we trigger our pause More...
 
virtual IEnumerator PlayPause ()
 Pause coroutine More...
 
virtual void CacheWaitForSeconds ()
 Caches our waitforseconds More...
 
virtual void OnValidate ()
 When changed, we cache our waitforseconds again More...
 
- Protected Member Functions inherited from MoreMountains.Feedbacks.MMFeedback
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...
 

Properties

override bool LooperPause [get]
 sets the color of this feedback in the inspector More...
 
override YieldInstruction Pause [get]
 
override float FeedbackDuration [get]
 the duration of this feedback is the duration of the pause More...
 
- Properties inherited from MoreMountains.Feedbacks.MMFeedbackPause
override YieldInstruction Pause [get]
 
override float FeedbackDuration [get]
 the duration of this feedback is the duration of the pause More...
 
- Properties inherited from MoreMountains.Feedbacks.MMFeedback
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...
 

Additional Inherited Members

- Public Member Functions inherited from MoreMountains.Feedbacks.MMFeedback
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...
 
- Protected Attributes inherited from MoreMountains.Feedbacks.MMFeedbackPause
WaitForSeconds _waitForSeconds
 
- Protected Attributes inherited from MoreMountains.Feedbacks.MMFeedback
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
 

Detailed Description

This feedback will move the current "head" of an MMFeedbacks sequence back to another feedback above in the list. What feedback the head lands on depends on your settings : you can decide to have it loop at last pause, or at the last LoopStart feedback in the list (or both). Furthermore, you can decide to have it loop multiple times and cause a pause when met.

Member Function Documentation

◆ CustomInitialization()

override void MoreMountains.Feedbacks.MMFeedbackLooper.CustomInitialization ( GameObject  owner)
protectedvirtual

On init we initialize our number of loops left

Parameters
owner

Reimplemented from MoreMountains.Feedbacks.MMFeedback.

◆ CustomPlayFeedback()

override void MoreMountains.Feedbacks.MMFeedbackLooper.CustomPlayFeedback ( Vector3  position,
float  attenuation = 1.0f 
)
protectedvirtual

On play we decrease our counter and play our pause

Parameters
position
attenuation

Implements MoreMountains.Feedbacks.MMFeedback.

◆ CustomReset()

override void MoreMountains.Feedbacks.MMFeedbackLooper.CustomReset ( )
protectedvirtual

On reset we reset our amount of loops left

Reimplemented from MoreMountains.Feedbacks.MMFeedback.

◆ CustomStopFeedback()

override void MoreMountains.Feedbacks.MMFeedbackLooper.CustomStopFeedback ( Vector3  position,
float  attenuation = 1 
)
protectedvirtual

On custom stop, we exit our infinite loop

Parameters
position
attenuation

Reimplemented from MoreMountains.Feedbacks.MMFeedback.

Member Data Documentation

◆ InfiniteLoop

bool MoreMountains.Feedbacks.MMFeedbackLooper.InfiniteLoop = false

if this is true, the looper will loop forever

◆ InInfiniteLoop

bool MoreMountains.Feedbacks.MMFeedbackLooper.InInfiniteLoop = false

whether we are in an infinite loop at this time or not

◆ LoopAtLastLoopStart

bool MoreMountains.Feedbacks.MMFeedbackLooper.LoopAtLastLoopStart = true

if this is true, this feedback, when met, will cause the MMFeedbacks to reposition its 'head' to the first LoopStart feedback found above it (going from this feedback to the top), or to the start if none is found

◆ LoopAtLastPause

bool MoreMountains.Feedbacks.MMFeedbackLooper.LoopAtLastPause = true

if this is true, this feedback, when met, will cause the MMFeedbacks to reposition its 'head' to the first pause found above it (going from this feedback to the top), or to the start if none is found

◆ NumberOfLoops

int MoreMountains.Feedbacks.MMFeedbackLooper.NumberOfLoops = 2

how many times this loop should run

◆ NumberOfLoopsLeft

int MoreMountains.Feedbacks.MMFeedbackLooper.NumberOfLoopsLeft = 1

the amount of loops left (updated at runtime)

Property Documentation

◆ FeedbackDuration

override float MoreMountains.Feedbacks.MMFeedbackLooper.FeedbackDuration
get

the duration of this feedback is the duration of the pause

◆ LooperPause

override bool MoreMountains.Feedbacks.MMFeedbackLooper.LooperPause
get

sets the color of this feedback in the inspector

◆ Pause

override YieldInstruction MoreMountains.Feedbacks.MMFeedbackLooper.Pause
get

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