Complete list of MMFeedbacks
MMFeedbacks comes loaded with different types of feedbacks. Some will focus or interact with a GameObject, some with the camera (or parts of it), some with third parties, and some just don’t fit in any specific category. Note that some of them are autonomous, and some will require the presence of another object, usually called Shaker (because it’s responsible for shaking stuff), put in your scene. This list explains it all, and if you want to know more, you can always look at the classes themselves, they’re all commented.
This page simply lists all feedbacks. If you want to know all the details about each of them, check out the API documentation.
- AudioSource : lets you play, pause, unpause or stop a preexisting audiousource on demand. You’ll also be able to play it at a random pitch and volume.
- Sound : another way to trigger a sound. You specify an audio clip, and then you can decide to have it instantiated on demand, cached, have it create an object pool of ready to use sounds, or even trigger a sound event. This feedback also lets you preview your sound from the editor.
- AudioSource Pitch : tweak an AudioSource’s pitch over time
- AudioSource Stereo Pan : alter the stereo pan value of an AudioSource over time
- AudioSource Volume : lets you tween the volume of an audio source over time
- Distortion Filter : tween the distortion level of a distortion filter over time.
- Echo Filter : tween echo over time
- High Pass Filter : tween the cutoff of a high pass over time
- Low Pass Filter : tween the cutoff of a low pass over time
- Reverb Filter : tween reverb levels over time
- Camera Shake : simply shakes the camera over time, lets you specify a duration (in seconds), an amplitude and a frequency. For more advanced shakes, look at the Cinemachine Impulse feedback. This feedback requires a MMCameraShaker component on your camera. If you’re using Cinemachine, and want to use this feedback over the Cinemachine Impulse one, you’ll need a MMCinemachineCameraShaker on your virtual camera, and a noise setup on your virtual camera. To add a noise, select your virtual camera, in its Noise panel, select Basic Multichannel Perlin and pick a noise profile.
- Zoom : lets you zoom in or out when the feedback plays, either for a specified duration, or until further notice.
- Flash : flash an image on screen, or simply a color for a short duration. You’ll need an element (or more) with a MMFlash component on it in your scene for this feedback to interact with. Lets you specify color, alpha, and Flash ID for complete control over your flashes.
- Fade : fades an image in or out, useful for transitions. This feedback requires an object with an MMFader component on it in your scene. From the feedback’s inspector you’ll be able to pick a transition curve, a target alpha, and a position. Can also be used to pilot MMFaderRounds.
- Field of View : control a camera’s field of view over time. Will require a MMCameraFieldOfViewShaker on your camera, or a MMCinemachineFieldOfViewShaker on your virtual camera.
- Clipping Planes : lets you tween the near and far clipping planes distances of a camera over time. This requires a MMCameraClippingPlanesShaker on your camera, or a MMCinemachineClippingPlanesShaker on your virtual camera if you’re using Cinemachine.
- Orthographic Size : for orthographic/2D cameras only, lets you tween the camera’s size over time, basically zooming in or out. Will require a MMCameraOrthographicSizeShaker on your camera, or a MMCinemachineOrthographicSizeShaker on your virtual camera.
- Cinemachine Transition : lets you transition to another virtual camera, using the blend of your choice, and auto managing other camera’s priorities. You’ll need a MMCinemachinePriorityListener on each of your virtual cameras for this to work. If you want more control, you can also add a MMCinemachinePriorityBrainListener on your Cinemachine brain. This will let you specify the transition to use to override the default one straight from the feedback.
- Cinemachine Impulse : triggers a Cinemachine Impulse to shake your virtual cameras. You’ll need an impulse listener on your virtual camera for this to work. To add one, select your virtual camera, and at the bottom of its inspector there’s an “add extension” dropdown. Pick Cinemachine Impulse Listener from it. On the feedback’s inspector you’ll be able to tweak all sorts of things. To get started with it, pick a raw signal (click on the tiny cog icon next to the Raw Signal field, Presets > 6D Shake), and set the velocity at the bottom of the inspector to 1, 1, 1 for example. Then tweak to your liking! With control over attack, sustain, decay, scale, impact radius and more, it’s a very powerful tool.
- Animation : lets you play any animation on an animator. Bind an animator to the feedback’s inspector, and it’ll let you update trigger and/or bool animation parameters.
- Enable Behaviour : enables or disables a monobehaviour when the feedback plays, inits, stops or resets.
- Float Controller : possibly the most powerful of all the MMFeedbacks, this one lets you control a float value on any monobehaviour. You’ll need a FloatController component on your target mono.
- Instantiate Object : spawns objects when the feedback plays, at the specified position.
- Rigidbody : adds force or torque to a Rigidbody
- Rigidbody2D : adds force or torque to a Rigidbody2D
- Property : lets you target and control any property or field (floats, vectors, ints, strings, colors, etc), on any object (including ScriptableObjects), and control it over time. Drag a game object or scriptable object into its TargetObject slot, then select a component, and finally a property you want to affect. From there you can define remap options, and tweak your curve.
- Set Active : sets an object active or inactive
- Feedbacks : lets you trigger other MMFeedbacks within the specified range
- MMRadioSignal : this feedback lets you control a MMRadioSignal, that can then be broadcasted to control receivers, to pilot any value you want on any component, on any object. Don’t hesitate to read more about the MMRadio system, it can prove quite useful!
- MMRadio Broadcast : similar to the MMRadioSignal one, but directly broadcasts the signal to any receivers, instead of going through an emitter
- Looper : moves the current “head” of an MMFeedbacks sequence back to another feedback above in the list. You can then have that sequence repeat any number of times of your choice, or indefinitely.
- Looper Start : can act as a pause but also as a start point for your loops.
- Particles Instantiation : instantiate particles and play them. You can instantiate them on demand or cache them, and you can specify the position you want them at.
- Particles Play : control an existing particle system. The feedback also lets you move it to the feedback’s position on demand.
- Pause : causes a pause in the feedbacks sequence when met, preventing any other feedback lower in the sequence to run until the pause is complete.
- Holding Pause : holds until all previous feedbacks in the sequence, as well as this feedback’s pause have been executed.
All of these require their respective shaker on a PostProcessing Volume to function.
- Bloom : control bloom intensity and threshold over time.
- Chromatic Aberration : control the force of a chromatic aberration over time
- Color Grading : lets you play with many color grading options : post exposure, saturation, hue shift, contrast…
- Depth of Field : lets you control depth of field focus distance, aperture and focal length over time
- Global PP Volume Auto Blend : tween a PostProcessing volume’s weight
- Lens Distortion : lens distortion on demand
- PP Moving Filter : move a post processing filter in or out of the camera
- Vignette : control vignette parameters over time
- Flicker : lets you rapidly change the color of a material. By default this will control the target renderer’s shader’s Color value but the feedback also lets you specify your own if you want. Comes with flicker duration, octave and color control.
- Material : changes the material of the target renderer everytime it’s played, out of an array of materials. You can swap them sequentially or randomly.
- MMBlink : controls an MMBlink, letting you do advanced blinking behaviours.
- Shader Controller : similar to the Float Controller, lets you control most settings of any shader. Will require a ShaderController component on your target.
- SpriteRenderer : take control of a SpriteRenderer’s color and X or Y flip
- Freeze Frame : freeze the timescale for a short duration of your choice. Requires a TimeManager in your scene.
- Time Modifier : complete control over time, slow it down, speed it up, with optional customizable interpolation. You can also trigger Change or Reset time modifications, letting you change the timescale to a new one indefinitely, or reset it to its previous value, respectively. Requires a TimeManager in your scene.
- Position : lets you tweak the position of a transform over time with different modes : A to B will move the object from an initial to a destination position, at the specified speed, duration and acceleration. Along Curve will move the object along the defined curve, with remapped values, on any or all of the 3 axes. To Destination will move the object to the specified destination.
- Rotation : lets you play with the rotation of a transform over time, packed with options. Similar to the position feedback, you can rotate an object in absolute mode, additive (adding to its current rotation at the start of the play), or to a defined destination.
- Scale : lets you animate the scale of a transform over time. Comes with similar options and settings as the Position and Rotation feedbacks.
- Wiggle : lets you play with rotation, scale and position over time. You’ll need an MMWiggle component on your target object for this to work.
All of these require their respective URP shaker on a Volume to function. Make sure you pick the URP versions of the shaders and feedbacks when working with URP, it won’t work otherwise.
- Bloom_URP : control bloom intensity over time
- Chromatic Aberration_URP : control the force of a chromatic aberration over time
- Color Adjustments_URP : lets you play with many color adjustments options : post exposure, saturation, hue shift, contrast…
- Depth of Field_URP : lets you control depth of field parameters over time
- Global PP Volume Auto Blend_URP : tween a PostProcessing volume’s weight
- Lens Distortion_URP : lens distortion on demand
- Motion Blur_URP : motion blur level over time
- Panini Projection_URP : tweak a panini projection’s distance and crop to fit over time
- Vignette_URP : control vignette parameters over time
- CanvasGroup : lets you control a CanvasGroup’s alpha over time
- Image : lets you play with the color of an Image over time
- Events : lets you associate any sort of Unity event to a feedback, and lets you trigger them on play, stop, initialization or reset.
- Light : complete control over a light’s intensity and color over time
- Nice Vibrations Haptics : this feedback lets you play the NiceVibration haptic feedback of your choice. This requires you bought the NiceVibrations asset from the Unity Asset Store.
- DebugLog : lets you output debug messages to the console, using different methods (MMDebug, warning, error, log, etc)