|  | Feel
    5.8
    The best way to improve your game's feel and make it extra juicy | 
This feedback lets you broadcast a float value to the MMRadio system More...
 
  
| Public Attributes | |
| override bool | HasChannel => true | 
| sets the inspector color for this feedback  More... | |
| MMTweenType | Curve = new MMTweenType(new AnimationCurve(new Keyframe(0, 0), new Keyframe(0.3f, 1f), new Keyframe(1, 0))) | 
| the curve to tween the intensity on  More... | |
| float | RemapZero = 0f | 
| the value to remap the intensity curve's 0 to  More... | |
| float | RemapOne = 1f | 
| the value to remap the intensity curve's 1 to  More... | |
| float | InstantChange | 
| the value to move the intensity to in instant mode  More... | |
| float | DestinationValue | 
| the value to move the intensity to in destination mode  More... | |
|  Public Attributes inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| Modes | Mode = Modes.OverTime | 
| whether the feedback should affect the target property instantly or over a period of time  More... | |
| float | Duration = 0.2f | 
| how long the target property should change over time  More... | |
| bool | StartsOff = false | 
| whether or not that target property should be turned off on start  More... | |
| bool | EndsOff = false | 
| whether or not that target property should be turned off once the feedback is done playing  More... | |
| bool | RelativeValues = false | 
| whether or not the values should be relative or not  More... | |
| bool | AllowAdditivePlays = false | 
| if this is true, calling that feedback will trigger it, even if it's in progress. If it's false, it'll prevent any new Play until the current one is over  More... | |
| bool | DisableOnStop = false | 
| if this is true, the target object will be disabled on stop  More... | |
| bool | OnlyPlayIfTargetIsActive = false | 
| if this is true, this feedback will only play if its target is active in hierarchy  More... | |
| override bool | HasRandomness => true | 
| override bool | HasCustomInspectors => true | 
|  Public Attributes inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| 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... | |
| Protected Member Functions | |
| override void | CustomInitialization (MMF_Player owner) | 
| On init we store our initial alpha  More... | |
| override void | FillTargets () | 
| We setup our target with this object  More... | |
|  Protected Member Functions inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| override void | CustomInitialization (MMF_Player owner) | 
| On init we turn the target property off if needed  More... | |
| virtual void | InitializeTargets () | 
| Initializes each target in the list  More... | |
| override void | CustomPlayFeedback (Vector3 position, float feedbacksIntensity=1.0f) | 
| On Play we turn our target property on and start an over time coroutine if needed  More... | |
| virtual void | Instant () | 
| Plays an instant feedback  More... | |
| override void | CustomRestoreInitialValues () | 
| On restore, we put our object back at its initial position  More... | |
| virtual IEnumerator | UpdateValueOverTimeCo (float feedbacksIntensity, Vector3 position) | 
| This coroutine will modify the values on the target property  More... | |
| virtual IEnumerator | UpdateValueToDestinationCo (float feedbacksIntensity, Vector3 position) | 
| virtual void | SetValues (float time, float feedbacksIntensity, Vector3 position, Modes mode=Modes.OverTime) | 
| Sets the various values on the target property on a specified time (between 0 and 1)  More... | |
| override void | CustomStopFeedback (Vector3 position, float feedbacksIntensity=1) | 
| Turns the target property object off on stop if needed  More... | |
| virtual void | Turn (bool status) | 
| Turns the target object on or off  More... | |
| virtual bool | CanPlay () | 
| Checks whether or not this feedback should play according to the defined settings  More... | |
|  Protected Member Functions inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| virtual void | AutomateTargetAcquisitionInternal () | 
| Performs automated target acquisition, if needed  More... | |
| virtual void | AutomateTargetAcquisition () | 
| A method meant to be implemented per feedback letting you specify what happens (usually setting a target)  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 | CustomPlayerComplete () | 
| This method describes what happens when the player this feedback belongs to completes playing  More... | |
| virtual void | CustomReset () | 
| This method describes what happens when the feedback gets reset  More... | |
| Protected Attributes | |
| MMF_BroadcastProxy | _proxy | 
|  Protected Attributes inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| List< MMF_FeedbackBaseTarget > | _targets | 
| Coroutine | _coroutine = null | 
|  Protected Attributes inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| float | _lastPlayTimestamp = -float.MaxValue | 
| int | _playsLeft | 
| bool | _initialized = false | 
| Coroutine | _playCoroutine | 
| Coroutine | _infinitePlayCoroutine | 
| Coroutine | _sequenceCoroutine | 
| Coroutine | _repeatedPlayCoroutine | 
| bool | _requiresSetup = false | 
| string | _requiredTarget = "" | 
| float | _randomDurationMultiplier = 1f | 
| int | _sequenceTrackID = 0 | 
| float | _beatInterval | 
| bool | BeatThisFrame = false | 
| int | LastBeatIndex = 0 | 
| int | CurrentSequenceIndex = 0 | 
| float | LastBeatTimestamp = 0f | 
| MMChannelData | _channelData | 
| float | _totalDuration = 0f | 
| int | _indexInOwnerFeedbackList = 0 | 
| string | _requiredTargetTextCached = "." | 
| string | _requiredTargetTextCachedExtra = "" | 
| float | _repeatOffset = 0f | 
| Additional Inherited Members | |
|  Public Types inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| enum | Modes { Modes.OverTime, Modes.Instant, Modes.ToDestination } | 
| the possible modes for this feedback  More... | |
|  Public Member Functions inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| virtual void | PrepareTargets () | 
| Creates a new list, fills the targets, and initializes them  More... | |
| override void | OnValidate () | 
| On validate (if a value has changed in the inspector), we reinitialize what needs to be  More... | |
|  Public Member Functions inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| 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 | 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... | |
|  Static Public Attributes inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| static bool | FeedbackTypeAuthorized = true | 
| a static bool used to disable all feedbacks of this type at once  More... | |
|  Static Public Attributes inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| const string | _randomnessGroupName = "Feedback Randomness" | 
| const string | _rangeGroupName = "Feedback Range" | 
| const string | _automaticSetupGroupName = "Automatic Setup" | 
|  Properties inherited from MoreMountains.Feedbacks.MMF_FeedbackBase | |
| override float? | FeedbackDuration  [get, set] | 
| the duration of this feedback is the duration of the target property, or 0 if instant  More... | |
|  Properties inherited from MoreMountains.Feedbacks.MMF_Feedback | |
| virtual bool | ScriptDrivenPause  [get, set] | 
| if this is true, this feedback will pause and wait until ResumeFeedbacks() is called on its parent MMF_Player 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 bool | InInitialDelay  [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... | |
This feedback lets you broadcast a float value to the MMRadio system
| 
 | protectedvirtual | 
On init we store our initial alpha
| owner | 
Reimplemented from MoreMountains.Feedbacks.MMF_Feedback.
| 
 | protectedvirtual | 
We setup our target with this object
Implements MoreMountains.Feedbacks.MMF_FeedbackBase.
| 
 | protected | 
| MMTweenType MoreMountains.Feedbacks.MMF_Broadcast.Curve = new MMTweenType(new AnimationCurve(new Keyframe(0, 0), new Keyframe(0.3f, 1f), new Keyframe(1, 0))) | 
the curve to tween the intensity on
| float MoreMountains.Feedbacks.MMF_Broadcast.DestinationValue | 
the value to move the intensity to in destination mode
| override bool MoreMountains.Feedbacks.MMF_Broadcast.HasChannel => true | 
sets the inspector color for this feedback
| float MoreMountains.Feedbacks.MMF_Broadcast.InstantChange | 
the value to move the intensity to in instant mode
| float MoreMountains.Feedbacks.MMF_Broadcast.RemapOne = 1f | 
the value to remap the intensity curve's 1 to
| float MoreMountains.Feedbacks.MMF_Broadcast.RemapZero = 0f | 
the value to remap the intensity curve's 0 to