This feedback will play the associated particles system on play, and stop it on stop  
 More...
 | 
| override bool  | HasAutomatedTargetAcquisition => true | 
|   | 
| Modes  | Mode = Modes.Play | 
|   | whether to Play, Stop or Pause the target particle system when that feedback is played  More...
  | 
|   | 
| int  | EmitCount = 100 | 
|   | in Emit mode, the amount of particles per emit  More...
  | 
|   | 
| ParticleSystem  | BoundParticleSystem | 
|   | the particle system to play with this feedback  More...
  | 
|   | 
| List< ParticleSystem >  | RandomParticleSystems | 
|   | a list of (optional) particle systems  More...
  | 
|   | 
| bool  | MoveToPosition = false | 
|   | if this is true, the particles will be moved to the position passed in parameters  More...
  | 
|   | 
| bool  | ActivateOnPlay = false | 
|   | if this is true, the particle system's object will be set active on play  More...
  | 
|   | 
| bool  | StopSystemOnInit = true | 
|   | if this is true, the particle system will be stopped on initialization  More...
  | 
|   | 
| bool  | StopSystemOnReset = true | 
|   | if this is true, the particle system will be stopped on reset  More...
  | 
|   | 
| bool  | StopSystemOnStopFeedback = true | 
|   | if this is true, the particle system will be stopped on feedback stop  More...
  | 
|   | 
| float  | DeclaredDuration = 0f | 
|   | the duration for the player to consider. This won't impact your particle system, but is a way to communicate to the MMF Player the duration of this feedback. Usually you'll want it to match your actual particle system, and setting it can be useful to have this feedback work with holding pauses.  More...
  | 
|   | 
| bool  | ForceSimulationSpeed = false | 
|   | whether or not to force a specific simulation speed on the target particle system(s)  More...
  | 
|   | 
| Vector2  | ForcedSimulationSpeed = new Vector2(0.1f,1f) | 
|   | The min and max values at which to randomize the simulation speed, if ForceSimulationSpeed is true. A new value will be randomized every time this feedback plays.  More...
  | 
|   | 
| bool  | Active = true | 
|   | whether or not this feedback is active  More...
  | 
|   | 
| int  | UniqueID | 
|   | 
| string  | Label = "MMFeedback" | 
|   | the name of this feedback to display in the inspector  More...
  | 
|   | 
| string  | OriginalLabel = "" | 
|   | the original label of this feedback, used to display next to the custom label in case we set one  More...
  | 
|   | 
| MMChannelModes  | ChannelMode = MMChannelModes.Int | 
|   | 
| int  | Channel = 0 | 
|   | the ID of the channel on which this feedback will communicate  More...
  | 
|   | 
| MMChannel  | MMChannelDefinition = null | 
|   | 
| 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...
  | 
|   | 
| virtual Color  | DisplayColor => Color.black | 
|   | use this color to customize the background color of the feedback in the MMF_Player's list  More...
  | 
|   | 
| MMFeedbackTiming  | Timing | 
|   | a number of timing-related values (delay, repeat, etc)  More...
  | 
|   | 
| MMFeedbackTargetAcquisition  | AutomatedTargetAcquisition | 
|   | a set of settings letting you define automated target acquisition for this feedback, to (for example) automatically grab the target on this game object, or a parent, a child, or on a reference holder  More...
  | 
|   | 
| bool  | RandomizeOutput = false | 
|   | if this is true, intensity will be multiplied by a random value on play, picked between RandomMultiplier.x and RandomMultiplier.y  More...
  | 
|   | 
| Vector2  | RandomMultiplier = new Vector2(0.8f, 1f) | 
|   | a random value (randomized between its x and y) by which to multiply the output of this feedback, if RandomizeOutput is true  More...
  | 
|   | 
| bool  | RandomizeDuration = false | 
|   | if this is true, this feedback's duration will be multiplied by a random value on play, picked between RandomDurationMultiplier.x and RandomDurationMultiplier.y  More...
  | 
|   | 
| Vector2  | RandomDurationMultiplier = new Vector2(0.5f, 2f) | 
|   | a random value (randomized between its x and y) by which to multiply the duration of this feedback, if RandomizeDuration is true  More...
  | 
|   | 
| bool  | UseRange = false | 
|   | if this is true, only shakers within the specified range will respond to this feedback  More...
  | 
|   | 
| float  | RangeDistance = 5f | 
|   | when in UseRange mode, only shakers within that distance will respond to this feedback  More...
  | 
|   | 
| bool  | UseRangeFalloff = false | 
|   | when in UseRange mode, whether or not to modify the shake intensity based on the RangeFallOff curve  
  More...
  | 
|   | 
| AnimationCurve  | RangeFalloff = new AnimationCurve(new Keyframe(0f, 1f), new Keyframe(1f, 0f)) | 
|   | the animation curve to use to define falloff (on the x 0 represents the range center, 1 represents the max distance to it)  More...
  | 
|   | 
| Vector2  | RemapRangeFalloff = new Vector2(0f, 1f) | 
|   | the values to remap the falloff curve's y axis' 0 and 1  More...
  | 
|   | 
| MMF_Button  | AutomaticShakerSetupButton | 
|   | a button used to attempt an auto shaker setup for this feedback, adding whatever shaker it requires to function to the scene  More...
  | 
|   | 
| MMF_Player  | Owner | 
|   | the Owner of the feedback, as defined when calling the Initialization method  More...
  | 
|   | 
| bool  | DebugActive = false | 
|   | whether or not this feedback is in debug mode  More...
  | 
|   | 
| virtual IEnumerator  | Pause => null | 
|   | set this to true if your feedback should pause the execution of the feedback sequence  More...
  | 
|   | 
| virtual bool  | HoldingPause => false | 
|   | if this is true, this feedback will wait until all previous feedbacks have run  More...
  | 
|   | 
| virtual bool  | LooperPause => false | 
|   | if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again  More...
  | 
|   | 
| virtual bool  | LooperStart => false | 
|   | if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again  More...
  | 
|   | 
| virtual bool  | HasChannel => false | 
|   | if this is true, the Channel property will be displayed, otherwise it'll be hidden  
  More...
  | 
|   | 
| virtual bool  | HasAutomaticShakerSetup => false | 
|   | if this is true, this feedback will display an automatic shaker setup button  
  More...
  | 
|   | 
| virtual bool  | HasRandomness => false | 
|   | if this is true, the Randomness group will be displayed, otherwise it'll be hidden  
  More...
  | 
|   | 
| virtual bool  | CanForceInitialValue => false | 
|   | if this is true, this feedback implements ForceInitialState, otherwise calling that method will have no effect  More...
  | 
|   | 
| virtual bool  | ForceInitialValueDelayed => false | 
|   | if this is true, force initial value will happen over two frames  More...
  | 
|   | 
| virtual bool  | HasAutomatedTargetAcquisition => false | 
|   | whether or not this feedback can automatically grab the target on this game object, or a parent, a child, or on a reference holder  More...
  | 
|   | 
| virtual bool  | HasRange => false | 
|   | if this is true, the Range group will be displayed, otherwise it'll be hidden  
  More...
  | 
|   | 
| virtual int  | PlaysLeft => _playsLeft | 
|   | the total amount of plays this feedback has left  More...
  | 
|   | 
| virtual bool  | HasCustomInspectors => false | 
|   | 
| virtual bool  | InCooldown | 
|   | returns true if this feedback is in cooldown at this time (and thus can't play), false otherwise  More...
  | 
|   | 
| virtual float  | ComputedRandomMultiplier | 
|   | Returns the random multiplier to apply to this feedback's output  More...
  | 
|   | 
| virtual bool  | RequiresSetup => _requiresSetup | 
|   | A flag used to determine if a feedback has all it needs, or if it requires some extra setup. This flag will be used to display a warning icon in the inspector if the feedback is not ready to be played.  More...
  | 
|   | 
| virtual string  | RequiredTarget => _requiredTarget | 
|   | 
| virtual bool  | DrawGroupInspectors => true | 
|   | if this is true, group inspectors will be displayed within this feedback  More...
  | 
|   | 
| virtual bool  | DisplayFullHeaderColor => false | 
|   | if this is true, the feedback will be displayed in the MMF Player's list with a full color background, as opposed to just a small line on the left  More...
  | 
|   | 
| virtual string  | RequiresSetupText => "This feedback requires some additional setup." | 
|   | defines the setup text that will be displayed on the feedback, should setup be required  More...
  | 
|   | 
| virtual string  | RequiredTargetText => "" | 
|   | the text used to describe the required target  More...
  | 
|   | 
| virtual string  | RequiredTargetTextExtra => "" | 
|   | the text used to describe the required target, if more info is needed  More...
  | 
|   | 
| virtual float  | FeedbackStartedAt => Application.isPlaying ? _lastPlayTimestamp : -1f | 
|   | 
| virtual bool  | FeedbackPlaying | 
|   | whether or not this feedback is playing right now  More...
  | 
|   | 
| virtual MMChannelData  | ChannelData => _channelData.Set(ChannelMode, Channel, MMChannelDefinition) | 
|   | a ChannelData object, ready to pass to an event  More...
  | 
|   | 
 | 
| override void  | AutomateTargetAcquisition () | 
|   | A method meant to be implemented per feedback letting you specify what happens (usually setting a target)  More...
  | 
|   | 
| override void  | CustomInitialization (MMF_Player owner) | 
|   | On init we stop our particle system  More...
  | 
|   | 
| override void  | CustomPlayFeedback (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | On play we play our particle system  More...
  | 
|   | 
| override void  | CustomStopFeedback (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | On Stop, stops the particle system  More...
  | 
|   | 
| override void  | CustomReset () | 
|   | On Reset, stops the particle system  More...
  | 
|   | 
| virtual void  | PlayParticles (Vector3 position) | 
|   | Plays a particle system  More...
  | 
|   | 
| virtual void  | HandleParticleSystemAction (ParticleSystem targetParticleSystem) | 
|   | Changes the target particle system's sim speed if needed, and calls the specified action on it  More...
  | 
|   | 
| virtual void  | StopParticles () | 
|   | Stops all particle systems  More...
  | 
|   | 
| virtual void  | AutomateTargetAcquisitionInternal () | 
|   | Performs automated target acquisition, if needed  More...
  | 
|   | 
| virtual GameObject  | FindAutomatedTargetGameObject () | 
|   | 
| virtual T  | FindAutomatedTarget< T > () | 
|   | 
| virtual IEnumerator  | PlayCoroutine (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | An internal coroutine delaying the initial play of the feedback  More...
  | 
|   | 
| virtual void  | RegularPlay (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Triggers delaying coroutines if needed  More...
  | 
|   | 
| virtual void  | TriggerCustomPlay (Vector3 position, float intensity) | 
|   | Triggers a custom play  More...
  | 
|   | 
| virtual IEnumerator  | InfinitePlay (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Internal coroutine used for repeated play without end  More...
  | 
|   | 
| virtual IEnumerator  | RepeatedPlay (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Internal coroutine used for repeated play  More...
  | 
|   | 
| virtual IEnumerator  | TriggerRepeatedPlay (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | 
| virtual IEnumerator  | SequenceCoroutine (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | A coroutine used to play this feedback on a sequence  More...
  | 
|   | 
| virtual IEnumerator  | ForceInitialValueDelayedCo (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | A coroutine used to delay the Stop when forcing initial values (used mostly with shaker based feedbacks)  More...
  | 
|   | 
| virtual float  | ApplyTimeMultiplier (float duration) | 
|   | Applies the host MMFeedbacks' time multiplier to this feedback  More...
  | 
|   | 
| virtual IEnumerator  | WaitFor (float delay) | 
|   | Internal method used to wait for a duration, on scaled or unscaled time  More...
  | 
|   | 
| virtual float  | ApplyDirection (float normalizedTime) | 
|   | Returns a new value of the normalized time based on the current play direction of this feedback  More...
  | 
|   | 
| virtual void  | CustomSkipToTheEnd (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | This method describes what happens when the feedback gets skipped to the end  More...
  | 
|   | 
| virtual void  | CustomRestoreInitialValues () | 
|   | This method describes what happens when the feedback gets restored  More...
  | 
|   | 
| virtual void  | CustomPlayerComplete () | 
|   | This method describes what happens when the player this feedback belongs to completes playing  More...
  | 
|   | 
 | 
| override float  | FeedbackDuration [get, set] | 
|   | 
| 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  More...
  | 
|   | 
| 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  More...
  | 
|   | 
| virtual MMF_ReferenceHolder  | ForcedReferenceHolder [get, set] | 
|   | when in forced reference mode, this will contain the forced reference holder that will be used (usually set by itself)  More...
  | 
|   | 
| virtual bool  | IsPlaying [get, set] | 
|   | if this is true, this feedback is currently playing  More...
  | 
|   | 
| virtual TimescaleModes  | ComputedTimescaleMode [get] | 
|   | Returns the timescale mode to use in logic, taking into account the one set at the feedback level and the player level  More...
  | 
|   | 
| virtual bool  | InScaledTimescaleMode [get] | 
|   | returns true if this feedback is in Scaled timescale mode, false otherwise  More...
  | 
|   | 
| virtual float  | FeedbackTime [get] | 
|   | the time (or unscaled time) based on the selected Timing settings  More...
  | 
|   | 
| virtual float  | FeedbackDeltaTime [get] | 
|   | the delta time (or unscaled delta time) based on the selected Timing settings  More...
  | 
|   | 
| virtual float  | TotalDuration [get] | 
|   | The total duration of this feedback : total = initial delay + duration * (number of repeats + delay between repeats)  
  More...
  | 
|   | 
| virtual bool  | IsExpanded [get, set] | 
|   | 
| virtual string  | RequiredChannelText [get] | 
|   | 
| virtual float  | FeedbackDuration [get, set] | 
|   | 
| virtual float?  | FinalNormalizedTime [get] | 
|   | Returns the t value at which to evaluate a curve at the end of this feedback's play time  More...
  | 
|   | 
| virtual bool  | NormalPlayDirection [get] | 
|   | Returns true if this feedback should play normally, or false if it should play in rewind  More...
  | 
|   | 
| virtual bool  | ShouldPlayInThisSequenceDirection [get] | 
|   | Returns true if this feedback should play in the current parent MMFeedbacks direction, according to its MMFeedbacksDirectionCondition setting  More...
  | 
|   | 
 | 
| virtual string  | GetLabel () | 
|   | you can override this when creating a custom feedback to have it behave differently and display a different label  More...
  | 
|   | 
| virtual float  | ComputeIntensity (float intensity, Vector3 position) | 
|   | Computes the new intensity, taking into account constant intensity and potential randomness  More...
  | 
|   | 
| virtual void  | CacheRequiresSetup () | 
|   | 
| virtual bool  | EvaluateRequiresSetup () | 
|   | Override this method to determine if a feedback requires setup  More...
  | 
|   | 
| virtual void  | SetFeedbackDuration (float newDuration) | 
|   | Use this method to change the duration of this feedback  More...
  | 
|   | 
| virtual void  | PreInitialization (MMF_Player owner, int index) | 
|   | Runs at Awake, lets you preinitialize your custom feedback before Initialization  More...
  | 
|   | 
| virtual void  | Initialization (MMF_Player owner, int index) | 
|   | Typically runs on Start, Initializes the feedback and its timing related variables  More...
  | 
|   | 
| virtual void  | SetIndexInFeedbacksList (int index) | 
|   | Lets you specify at what index this feedback is in the list - use carefully (or don't use at all)  More...
  | 
|   | 
| virtual void  | AutomaticShakerSetup () | 
|   | Call this method (either directly or via the inspector button) to try and automatically setup this feedback's corresponding shaker in the scene  More...
  | 
|   | 
| virtual void  | ForceAutomateTargetAcquisition () | 
|   | Lets you force target acquisition, outside of initialization where it usually occurs  More...
  | 
|   | 
| virtual void  | Play (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Plays the feedback  More...
  | 
|   | 
| virtual void  | SetSequence (MMSequence newSequence) | 
|   | Use this method to change this feedback's sequence at runtime  More...
  | 
|   | 
| virtual void  | Stop (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Stops all feedbacks from playing. Will stop repeating feedbacks, and call custom stop implementations  More...
  | 
|   | 
| virtual void  | SkipToTheEnd (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Called when skipping to the end of MMF_Player, calls custom Skip on all feedbacks  More...
  | 
|   | 
| virtual void  | ForceInitialValue (Vector3 position, float feedbacksIntensity=1.0f) | 
|   | Forces the feedback to set its initial value (behavior will change from feedback to feedback, but for example, a Position feedback that moves a Transform from point A to B would automatically move the Transform to point A when ForceInitialState is called  More...
  | 
|   | 
| virtual void  | RestoreInitialValues () | 
|   | Called when restoring the initial state of a player, calls custom Restore on all feedbacks  More...
  | 
|   | 
| virtual void  | ResetFeedback () | 
|   | Calls this feedback's custom reset  More...
  | 
|   | 
| virtual void  | ResetCooldown () | 
|   | Resets the cooldown for this feedback, allowing it to be played again instantly  More...
  | 
|   | 
| virtual void  | PlayerComplete () | 
|   | This gets called by the MMF Player when all feedbacks have completed playing  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...
  | 
|   | 
| virtual void  | ComputeNewRandomDurationMultiplier () | 
|   | Computes a new random duration multiplier  More...
  | 
|   | 
| virtual void  | ResetPlayCount () | 
|   | Resets the play count of this feedback  More...
  | 
|   | 
| virtual void  | ComputeTotalDuration () | 
|   | Computes the total duration of this feedback  More...
  | 
|   | 
| virtual void  | InitializeCustomAttributes () | 
|   | Use this method to initialize any custom attributes you may have  More...
  | 
|   | 
| virtual void  | OnValidate () | 
|   | Triggered when a change happens in the inspector  More...
  | 
|   | 
| virtual void  | OnAddFeedback () | 
|   | Triggered when the feedback gets added to the player  More...
  | 
|   | 
| virtual void  | OnDestroy () | 
|   | Triggered when that feedback gets destroyed  More...
  | 
|   | 
| virtual void  | OnDisable () | 
|   | Triggered when the host MMF Player gets disabled  More...
  | 
|   | 
| virtual void  | OnDrawGizmosSelectedHandler () | 
|   | Triggered when the host MMF Player gets selected, can be used to draw gizmos  More...
  | 
|   | 
This feedback will play the associated particles system on play, and stop it on stop