TopDown Engine  v4.1
MoreMountains.Tools Namespace Reference

Classes

class  AIAction
 Actions are behaviours and describe what your character is doing. Examples include patrolling, shooting, jumping, etc. More...
 
class  AIActionPropertyInspector
 
class  AIActionsList
 
class  AIBrain
 the AI brain is responsible from going from one state to the other based on the defined transitions. It's basically just a collection of states, and it's where you'll link all the actions, decisions, states and transitions together. More...
 
class  AIBrainEditor
 
class  AIDecision
 Decisions are components that will be evaluated by transitions, every frame, and will return true or false. Examples include time spent in a state, distance to a target, or object detection within an area.
More...
 
class  AIState
 A State is a combination of one or more actions, and one or more transitions. An example of a state could be "_patrolling until an enemy gets in range_". More...
 
struct  AIStateEvent
 
class  AITransition
 Transitions are a combination of one or more decisions and destination states whether or not these transitions are true or false. An example of a transition could be "_if an enemy gets in range, transition to the Shooting state_". More...
 
class  AITransitionPropertyInspector
 
class  AITransitionsList
 
class  Beat
 
class  DictionaryStringSceneData
 A serializable class used to store scene data, the key is a string (the scene name), the value is a MMPersistencySceneData More...
 
class  DictionaryStringString
 A serializable class used to store object data, the key is a string (the object name), the value is a string (the object data) More...
 
class  EventRegister
 Static class that allows any class to start or stop listening to events
 
class  FloatController
 A class used to control a float in any other class, over time To use it, simply drag a monobehaviour in its target field, pick a control mode (ping pong or random), and tweak the settings More...
 
class  FloatControllerEditor
 Custom editor for the FloatController, conditional hiding and dropdown fill More...
 
class  FogSettings
 A simple class used to store fog properties More...
 
class  GameObjectExtensions
 Game object extensions
 
interface  IMMPersistent
 An interface classes that want to be saved by the MMPersistencyManager need to implement More...
 
interface  IMMSaveLoadManagerMethod
 An interface to implement save and load using different methods (binary, json, etc) More...
 
class  LayermaskExtensions
 Layermask Extensions
 
class  LightController
 A class used to control the intensity of a light More...
 
class  ListExtensions
 List extensions
 
class  MMAchievement
 
struct  MMAchievementChangedEvent
 
class  MMAchievementList
 A scriptable object containing a list of achievements. You need to create one and store it in a Resources folder for this to work. More...
 
class  MMAchievementListInspector
 Custom inspector for the MMAchievementList scriptable object. More...
 
class  MMAchievementManager
 This static class is in charge of storing the current state of the achievements, unlocking/locking them, and saving them to data files
 
class  MMAchievementMenu
 
class  MMAchievementRules
 That class is meant to be extended to implement the achievement rules specific to your game. More...
 
struct  MMAchievementUnlockedEvent
 An event type used to broadcast the fact that an achievement has been unlocked More...
 
class  MMActivationOnStart
 Use this class to enable or disable other gameobjects automatically on Start or Awake More...
 
class  MMAdditiveSceneLoadingManager
 A class to load scenes using a loading screen instead of just the default API This is a new version of the classic LoadingSceneManager (now renamed to MMSceneLoadingManager for consistency) More...
 
class  MMAdditiveSceneLoadingManagerSettings
 A simple class used to store additive loading settings More...
 
class  MMAim
 
class  MMAnimationCurveGenerator
 This class will let you create and save a .curves asset in the specified path This asset will include curves (anti or not) from the MMTween library, to use anywhere animation curves are required More...
 
class  MMAnimationModifier
 Add this script to an animation in Mecanim and you'll be able to control its start position and speed More...
 
class  MMAnimationParameter
 A helper class that will hash a animation parameter and update it on demand More...
 
class  MMAnimatorExtensions
 Animator extensions
 
class  MMAnimatorMirror
 This class will let you mirror the behaviour of an Animator's parameters on a Source Animator onto the ones of a Target Animator. Target will mirror Source. Only the parameters existing on both Target and Source will be considered, you'll need to have the same on both before entering runtime. More...
 
class  MMApplicationPlatformActivation
 Add this class to a gameobject, and it'll enable/disable it based on platform context, using Application.platform to detect the platform More...
 
class  MMApplicationQuit
 A super simple mono you can add to an object to call its Quit method, which will force the application to quit. More...
 
class  MMArray
 Array helpers More...
 
class  MMArrayExtensions
 Array extensions
 
class  MMAspectRatioSafeZones
 A class to handle the automatic display of safe zones for the different ratios setup in the inspector More...
 
class  MMAspectRatioSafeZonesEditor
 Custom editor for the MMScreenSafeZones component More...
 
class  MMAudioAnalyzer
 This component lets you pick an audio source (either global : the whole scene's audio, a unique source, or the microphone), and will cut it into chunks that you can then use to emit beat events, that other objects can consume and act upon. The sample interval is the frequency at which sound will be analyzed, the amount of spectrum samples will determine the accuracy of the sampling, the window defines the method used to reduce leakage, and the number of bands will determine in how many bands you want to cut the sound. The more bands, the more levers you'll have to play with afterwards. In general, for all of these settings, higher values mean better quality and lower performance. The buffer speed determines how fast buffered band levels readjust. More...
 
class  MMAudioEvents
 
class  MMAudioListener
 A simple component that will ensure (if put on ALL audio listeners in your game) that you never see a "There are two audio listeners in the scene" warning again. More...
 
class  MMAutoDestroyParticleSystem
 Add this class to a ParticleSystem so it auto destroys once it has stopped emitting. Make sure your ParticleSystem isn't looping, otherwise this script will be useless More...
 
class  MMAutoExecution
 This simple class lets you trigger Unity events automatically, on Awake, Enable, Disable, Start, or on instantiate For that last one, you'll want to send a "OnInstantiate" message when instantiating this object More...
 
class  MMAutoExecutionItem
 A data class to store auto execution info to be used in MMAutoExecution More...
 
class  MMAutoOrderInLayer
 Add this component to an object to have it pick a new order in layer on start, useful to have unique sorting layer numbers More...
 
class  MMAutoRotate
 Add this class to a GameObject to make it rotate on itself More...
 
class  MMAutoRotateEditor
 Custom editor for the MMAutoRotate component More...
 
class  MMBackgroundColorAttribute
 
class  MMBackgroundColorAttributeDrawer
 
struct  MMBeatEvent
 An event you can listen to that will get automatically triggered for every remapped beat More...
 
class  MMBezierLineRenderer
 Add this class to a line renderer and it'll add control points that let you turn your line into a bezier curve More...
 
class  MMBillboard
 Add this class to an object (usually a sprite) and it'll face the camera at all times More...
 
class  MMBoundsExtensions
 Bounds helpers More...
 
class  MMCameraAspectRatio
 Forces an aspect ratio on a camera More...
 
class  MMCameraExtensions
 Camera extensions
 
class  MMCameraFog
 Add this class to a camera and it will override fog settings when active More...
 
class  MMChangeFogColor
 Adds this class to a UnityStandardAssets.ImageEffects.GlobalFog to change its color Why this is not native, I don't know. More...
 
class  MMCinemachineZone
 An abstract class that lets you define a zone that, when entered, enables a virtual camera, and takes care of all the boilerplate setup More...
 
class  MMCinemachineZone2D
 2D Implementation of the CinemachineZone abstract class More...
 
class  MMCinemachineZone3D
 3D Implementation of the CinemachineZone abstract class More...
 
class  MMCircularList
 A improved list that lets you parse it and automatically have it loop to the start or end when you reach the end or start To use it : set the CurrentIndex to whatever you want, then use IncrementCurrentIndex / DecrementCurrentIndex to move it, get the current element via Current More...
 
class  MMCleanEmptyFolders
 A maintenance class that removes all empty directories from a project via a menu item More...
 
class  MMCleanupMissingScripts
 This class lets you clean all missing scripts on a selection of gameobjects More...
 
class  MMColorAttribute
 
class  MMColorAttributeDrawer
 
class  MMColorExtensions
 Color extensions
 
class  MMColors
 Color helpers
 
class  MMConditionalActivation
 Add this component to a gameobject, and it'll let you enable target monos after all other targets have been disabled More...
 
class  MMConditionAttribute
 
class  MMConditionAttributeDrawer
 
class  MMConeOfVision
 This class will create a cone of vision defined by an angle and a distance around a point. It will look for targets within that field, and draw a mesh to show the cone of vision initially inspired by this great tutorial by Sebastian Lague : https://www.youtube.com/watch?v=rQG9aUWarwE - check out his tutorials, they're amazing! More...
 
class  MMConeOfVision2D
 
class  MMConeOfVision2DInspector
 
class  MMConeOfVisionInspector
 
class  MMConsole
 This class displays an on-screen console for easier debugging DO NOT ADD THIS CLASS AS A COMPONENT. Instead, use the MMDebug.DebugOnScreen methods that will take care of everything More...
 
class  MMCooldown
 A class to handle cooldown related properties and their resource consumption over time Remember to initialize it (once) and update it every frame from another class More...
 
class  MMCoroutine
 
class  MMCursorVisible
 Add this class to an object and it'll make sure that the cursor is either visible or invisible More...
 
class  MMDButtonPressedEvent
 An event fired when a button gets pressed in a MMDebugMenu More...
 
class  MMDCheckboxFalseEvent
 
class  MMDCheckboxPressedEvent
 
class  MMDCheckboxTrueEvent
 
class  MMDebug
 Debug helpers
 
class  MMDebugController
 Add this class to an empty object in your scene and it'll act as a point of control to enable or disable logs and debug draws More...
 
class  MMDebugEditor
 An editor class used to display menu items More...
 
class  MMDebugLogCommandArgumentCountAttribute
 An attribute to add to static methods to they can be called via the MMDebugMenu's command line More...
 
class  MMDebugLogCommandAttribute
 An attribute to add to static methods to they can be called via the MMDebugMenu's command line More...
 
struct  MMDebugMenuButtonEvent
 An event used to broadcast button events from a MMDebugMenu More...
 
class  MMDebugMenuButtonEventListener
 A class used to listen to button events from a MMDebugMenu More...
 
struct  MMDebugMenuCheckboxEvent
 An event used to broadcast checkbox events from a MMDebugMenu More...
 
class  MMDebugMenuCheckboxEventListener
 A class used to listen to events from a MMDebugMenu's checkbox More...
 
class  MMDebugMenuCommands
 Command lines to be run from the MMDebugMenu To add new ones, add the [MMDebugLogCommand] attribute to any static method More...
 
struct  MMDebugMenuSliderEvent
 An event used to broadcast slider events from a MMDebugMenu More...
 
class  MMDebugMenuSliderEventListener
 A class used to listen to slider events from a MMDebugMenu More...
 
class  MMDebugTouchDisplay
 Add this class to a canvas and it'll automatically reposition TouchPrefabs at the position of touches You can set a higher TouchProvision if your game gets more than the default number (6) simultaneous touches Disable/enable this mono for it to stop/work More...
 
class  MMDelayParticles
 MM delay particles. More...
 
class  MMDictionaryExtensions
 Dictionary extensions
 
class  MMDontDestroyOnLoad
 Add this component to an object and it'll persist across scenes More...
 
class  MMDoubleSpriteMask
 This setup uses two sprite masks, bound in the inspector, to enable one and then disable the other to mask specific parts of a level More...
 
class  MMDropdownAttribute
 
class  MMDropdownAttributeDrawer
 
class  MMDSliderValueChangedEvent
 
class  MMEmmiterReceiver
 This component lets you very easily have one property drive the value of another property. To do so, drag the object with the property you want to "read" from into the Emitter Property slot, then select the component the property is on, and finally the property itself. Then drag the object with the property you want to "write" to into the ReceiverProperty slot, and pick the property you want to drive with the emitter's value. More...
 
class  MMEnumConditionAttribute
 An attribute to conditionnally hide fields based on the current selection in an enum. Usage : [MMEnumCondition("rotationMode", (int)RotationMode.LookAtTarget, (int)RotationMode.RotateToAngles)] More...
 
class  MMEnumConditionAttributeDrawer
 
interface  MMEventListener
 A public interface you'll need to implement for each type of event you want to listen to. More...
 
interface  MMEventListenerBase
 Event listener basic interface More...
 
class  MMEventListenerWrapper
 
class  MMEventManager
 This class handles event management, and can be used to broadcast events throughout the game, to tell one class (or many) that something's happened. Events are structs, you can define any kind of events you want. This manager comes with MMGameEvents, which are basically just made of a string, but you can work with more complex ones if you want.
 
class  MMExecutionOrderAttribute
 Add this attribute to a class and its Execution Order will be changed to the value specified in parameters Usage : [ExecutionOrder(66)] More...
 
class  MMFaceDirection
 Use this script to have a Transform automatically face a certain direction, whether its own movement direction, or a specific target Transform More...
 
struct  MMFadeEvent
 Events used to trigger faders on or off More...
 
struct  MMFadeInEvent
 
struct  MMFadeOutEvent
 
class  MMFader
 The Fader class can be put on an Image, and it'll intercept MMFadeEvents and turn itself on or off accordingly. More...
 
class  MMFaderDirectional
 The Fader class can be put on an Image, and it'll intercept MMFadeEvents and turn itself on or off accordingly. This specific fader will move from left to right, right to left, top to bottom or bottom to top More...
 
class  MMFaderRound
 The Fader class can be put on an Image, and it'll intercept MMFadeEvents and turn itself on or off accordingly. More...
 
struct  MMFadeStopEvent
 An event used to stop fades More...
 
class  MMFloatExtensions
 Float extensions
 
class  MMFollowTarget
 Add this component to an object and it'll get moved towards the target at update, with or without interpolation based on your settings More...
 
class  MMFPSUnlock
 Add this component to any object and it'll set the target frame rate and vsync count. Note that vsync count must be 0 for the target FPS to work. More...
 
struct  MMGameEvent
 MMGameEvents are used throughout the game for general game events (game started, game ended, life lost, etc.) More...
 
class  MMGameEventListener
 Add this component to an object, and it'll let you easily trigger UnityEvents when the event of the specified name is triggered More...
 
class  MMGeometry
 A helper class to handle geometry related operations

 
class  MMGizmo
 Add this component to an object and it'll let you display a gizmo for its position or collider, and an optional text More...
 
class  MMGizmoEditor
 a custom editor for the MMGizmo component More...
 
class  MMGridGenerator
 
class  MMGridGeneratorFull
 Generates a grid of the specified size, either entirely full or empty More...
 
class  MMGridGeneratorPath
 Generates a grid with a path in the specified direction More...
 
class  MMGridGeneratorPerlinNoise
 Generates a grid of the specified size based on a seeded perlin noise, the smaller the seed, the blockier the grid More...
 
class  MMGridGeneratorPerlinNoiseGround
 Generates a grid with a ground floor More...
 
class  MMGridGeneratorRandom
 Generates a simple grid filled with random points More...
 
class  MMGridGeneratorRandomWalk
 Generates a grid with a path carved by a drunkard walk algorithm See http://pcg.wikidot.com/pcg-algorithm:drunkard-walk More...
 
class  MMGridGeneratorRandomWalkAvoider
 Generates a grid with a path carved by a drunkard walk algorithm that will avoid another grid's walls More...
 
class  MMGridGeneratorRandomWalkGround
 Uses random walk to generate a ground with controlled elevation More...
 
class  MMGroupSelection
 A class used to add a menu item and a shortcut to group objects together under a parent game object More...
 
class  MMGUI
 
class  MMGyroCam
 A class used to store gyro properties per camera More...
 
class  MMGyroParallax
 Add this class to a camera rig (an empty object), bind some Cinemachine virtual cameras to it, and they'll move around the specified object as your gyro powered device moves More...
 
class  MMGyroscope
 
class  MMHealthBar
 Add this component to an object and it will show a healthbar above it You can either use a prefab for it, or have the component draw one at the start More...
 
class  MMHelpers
 Various helpers
 
class  MMHiddenAttribute
 
class  MMHiddenAttributeDrawer
 
class  MMHiddenPropertiesAttribute
 
class  MMImage
 Image helpers More...
 
class  MMInformationAttribute
 
class  MMInput
 Input helpers More...
 
class  MMInputExecution
 A simple class used to bind target keys to specific events to trigger when the key is pressed or released More...
 
class  MMInputExecutionBinding
 A class used to store MMInputExecution bindings, associating a target keycode to UnityEvents More...
 
class  MMInspectorButtonAttribute
 
class  MMInspectorButtonBarAttribute
 
class  MMInspectorGroupAttribute
 An attribute used to group inspector fields under common dropdowns Implementation inspired by Rodrigo Prinheiro's work, available at https://github.com/RodrigoPrinheiro/unityFoldoutAttribute More...
 
class  MMInspectorGroupData
 
struct  MMInterval
 
interface  MMIStateMachine
 Public interface for the state machine. More...
 
class  MMLayer
 
class  MMLayerPropertyDrawer
 
class  MMLayers
 
class  MMLineRendererCircle
 
class  MMLineRendererDriver
 This component, added to a line renderer, will let you fill a list of transforms, and bind their positions to the linerenderer's positions. More...
 
class  MMLoadScene
 Add this component on an object, specify a scene name in its inspector, and call LoadScene() to load the desired scene. More...
 
class  MMLockInspector
 A simple class that lets you lock the current inspector by pressing ctrl (or cmd) + L Pressing the same shortcut again unlocks the More...
 
class  MMLoot
 A class defining the contents of a MMLootTable More...
 
class  MMLootFloat
 a MMLoot implementation for floats More...
 
class  MMLootGameObject
 a MMLoot implementation for gameobjects More...
 
class  MMLootString
 a MMLoot implementation for strings More...
 
class  MMLootTable
 A loot table helper that can be used to randomly pick objects out of a weighted list This design pattern was described in more details by Daniel Cook in 2014 in his blog : https://lostgarden.home.blog/2014/12/08/loot-drop-tables/ More...
 
class  MMLootTableFloat
 A MMLootTable implementation for floats More...
 
class  MMLootTableGameObject
 A MMLootTable implementation for GameObjects More...
 
class  MMLootTableGameObjectSO
 A scriptable object containing a MMLootTable definition for game objects More...
 
class  MMLootTableString
 A MMLootTable implementation for strings More...
 
class  MMMaths
 Math helpers
 
class  MMMenuHelp
 This class adds a MoreMountains entry in Unity's top menu, allowing to enable/disable the help texts from the engine's inspectors
 
class  MMMeshToPolygonCollider2D
 A class that lets you create polygon collider 2D out of mesh filters More...
 
class  MMMonoBehaviour
 
class  MMMonoBehaviourFieldInfo
 
class  MMMonoBehaviourUITKEditor
 
class  MMMovement
 Movement helpers
 
class  MMMultipleObjectPooler
 This class allows you to have a pool of various objects to pool from. More...
 
class  MMMultipleObjectPoolerObject
 Multiple object pooler object. More...
 
class  MMNavMeshAreaMaskAttribute
 
class  MMObjectBounds
 
class  MMObjectPool
 
class  MMObjectPooler
 A base class, meant to be extended depending on the use (simple, multiple object pooler), and used as an interface by the spawners. Still handles common stuff like singleton and initialization on start(). DO NOT add this class to a prefab, nothing would happen. Instead, add SimpleObjectPooler or MultipleObjectPooler. More...
 
struct  MMObservable
 This struct lets you declare observable properties. For example, let's say you have a class called Character, and you declare its speed like so : More...
 
class  MMObservableDemoObserver
 A test class used to demonstrate the MMObservable in the MMObservableTest demo scene
More...
 
class  MMObservableDemoObserverAutoSleep
 A test class used to demonstrate the MMObservable pattern in the MMObservableDemo scene This one disables itself on Awake, and passively listens for changes, even when disabled More...
 
class  MMObservableDemoSubject
 A test class used to demonstrate how MMObservable works in the MMObservableTest demo scene
More...
 
class  MMOffsetAnimation
 Use this class to offset an animation by a random range More...
 
class  MMOnMouse
 Attach this class to a collider and it'll let you trigger events when the user clicks/drags/enters/etc that collider More...
 
class  MMOpenURL
 A class used to open a URL specified in its inspector More...
 
class  MMOrbitalCamera
 A class used to make a camera orbit around a target More...
 
class  MMPanningTexture
 Use this class on a sprite or mesh to have its texture pan according to the specified speed You can also force a sorting layer name More...
 
class  MMParallaxUI
 Use this class to bind a number of UI layers to the movements of a mouse cursor, or a mobile device gyroscope, or even have it be piloted by another script By setting different speed/amplitude values for each of your UI layers, you'll be able to create a nice parallax effect More...
 
class  MMParentingOnStart
 This component lets you parent the transform you put it on to any target parent (or to the root if none is set), on Awake, Start or anytime you call its Parent() method More...
 
class  MMPath
 Add this component to an object and you'll be able to define a path, that can then be used by another component More...
 
class  MMPathMovement
 Add this component to an object and it'll be able to move along a path defined from its inspector. More...
 
class  MMPathMovementElement
 This class describes a node on an MMPath More...
 
class  MMPeriodicExecution
 This class will let you trigger a OnRandomInterval event periodically, at random intervals More...
 
struct  MMPersistenceEvent
 A data structure used to store persistence event data. To use : MMPersistencyEvent.Trigger(MMPersistencyEventType.DataLoadedFromFileToMemory, "yourPersistencyID"); More...
 
class  MMPersistenceManager
 Add this component to a scene and it'll let you save and load the state of objects that implement the IMMPersistent interface You can create your own classes that implement this interface, or use the MMPersistent class that comes with this package It will save their transform data (position, rotation, scale) and their active state Triggering save and load is done via events, and the manager also emits events every time data is loaded or saved More...
 
class  MMPersistenceManagerData
 A serializable class used to store all the data for a persistence manager, a collection of scene datas More...
 
class  MMPersistenceSceneData
 A serializable class used to store all the data for a scene, a collection of object datas More...
 
class  MMPersistent
 A persistent class that can save the essential parts of an object : its transform data (position, rotation, scale) and its active state This inherits from MMPersistentBase and implements the IMMPersistent interface It's a good example of how to implement the interface's OnSave and OnLoad methods More...
 
class  MMPersistentBase
 A base class implementing the IMMPersistent interface, designed to be extended This mostly takes care of the GUID generation and validation More...
 
class  MMPersistentHumbleSingleton
 Persistent humble singleton, basically a classic singleton but will destroy any other older components of the same type it finds on awake More...
 
class  MMPersistentSingleton
 Persistent singleton. More...
 
class  MMPlatformActivation
 Add this class to a gameobject, and it'll enable/disable it based on platform context, using conditional defintions to do so More...
 
class  MMPlaylist
 Use this class to play audiosources (usually background music but feel free to use that for anything) in sequence, with optional crossfade between songs More...
 
struct  MMPlaylistChangeEvent
 
struct  MMPlaylistNewSongStartedEvent
 
struct  MMPlaylistPauseEvent
 
struct  MMPlaylistPitchMultiplierEvent
 
struct  MMPlaylistPlayEvent
 This class stores all the info related to items in a playlist More...
 
struct  MMPlaylistPlayIndexEvent
 
struct  MMPlaylistPlayNextEvent
 
struct  MMPlaylistPlayPreviousEvent
 
class  MMPlaylistRemote
 A class used to pilot a MMPlaylist More...
 
class  MMPlaylistSong
 
struct  MMPlaylistStopEvent
 
struct  MMPlaylistVolumeMultiplierEvent
 
class  MMPlotter
 
class  MMPlotterAxis
 
class  MMPlotterEditor
 A custom editor displaying a foldable list of MMFeedbacks, a dropdown to add more, as well as test buttons to test your feedbacks at runtime More...
 
class  MMPlotterGenerator
 
class  MMPoolableObject
 Add this class to an object that you expect to pool from an objectPooler. Note that these objects can't be destroyed by calling Destroy(), they'll just be set inactive (that's the whole point). More...
 
class  MMPositionRecorder
 Add this class on a Transform, and it'll record its position periodically The Positions array can then be read from anywhere to know where that object was in the past More...
 
class  MMPostProcessingMovingFilter
 
struct  MMPostProcessingMovingFilterEvent
 An event used to move filters on and off a camera More...
 
class  MMPreventPassingThrough
 Prevents fast moving objects from going through colliders by casting a ray backwards after each movement More...
 
class  MMPreventPassingThrough2D
 Prevents fast moving objects from going through colliders by casting a ray backwards after each movement More...
 
class  MMPreventPassingThrough3D
 Prevents fast moving objects from going through colliders by casting a ray backwards after each movement More...
 
class  MMProgressBar
 Add this bar to an object and link it to a bar (possibly the same object the script is on), and you'll be able to resize the bar object based on a current value, located between a min and max value. See the HealthBar.cs script for a use case More...
 
class  MMProgressBarDemoAuto
 
class  MMProperty
 
class  MMPropertyEmitter
 A class used to pick a property, and remap its value for emission/broadcast More...
 
class  MMPropertyEmitterDrawer
 
class  MMPropertyLink
 A class, meant to be extended, used to control a MMProperty and get/set its value More...
 
class  MMPropertyLinkBool
 Bool property setter More...
 
class  MMPropertyLinkColor
 Color property setter More...
 
class  MMPropertyLinkFloat
 Float property setter More...
 
class  MMPropertyLinkInt
 Int property setter More...
 
class  MMPropertyLinkQuaternion
 Quaternion property setter More...
 
class  MMPropertyLinkString
 String property setter More...
 
class  MMPropertyLinkVector2
 Vector2 property setter More...
 
class  MMPropertyLinkVector3
 Vector3 property setter More...
 
class  MMPropertyLinkVector4
 
class  MMPropertyPicker
 A class used to pick a property on a target object / component / scriptable object More...
 
class  MMPropertyPickerDrawer
 
class  MMPropertyReceiver
 A class used to pick a property and modify its value More...
 
class  MMPropertyReceiverDrawer
 
class  MMRadioBroadcaster
 A class used to broadcast a level to MMRadioReceiver(s), either directly or via events It can read from pretty much any value on any class More...
 
struct  MMRadioLevelEvent
 A struct event used to broadcast the level to channels More...
 
class  MMRadioReceiver
 A class used to receive level values from a MMRadioBroadcaster, and apply it to (almost) any value on any object More...
 
class  MMRadioSignal
 A class used to define a signal, meant to be broadcasted by a MMRadioBroadcaster It'll output a Level value to broadcast, using one time, persistent or driven modes
Meant to be extended More...
 
class  MMRadioSignalAudioAnalyzer
 A class used to expose a beat level from a target MMAudioAnalyzer, to be broadcasted by a MMAudioBroadcaster More...
 
class  MMRadioSignalEditor
 
class  MMRadioSignalGenerator
 A class used to generate signals, normalized values between 0 and 1 You can then use these values from a MMRadioBroadcaster, or simply evaluate its value to use wherever you want, like a supercharged animation curve. In that case, simply disable the component, and read from it using its Evaluate method More...
 
class  MMRadioSignalGeneratorEditor
 
class  MMRadioSignalGeneratorItem
 A class used to store generator items and their properties More...
 
class  MMRadioSignalGeneratorItemList
 A reorderable list type used to store generator items More...
 
class  MMRadioSignalOnValueChange
 
class  MMRagdoller
 Use this class to pilot a ragdoll on a character that is usually driven by an animator and have it fall elegantly If you have parts of your ragdoll that you don't want to be affected by this script (a weapon for example), just add a MMRagdollerIgnore component to them More...
 
class  MMRagdollerIgnore
 Add this class to objects you'd like to be unaffected by the MMRagdoller (like weapons for example) More...
 
class  MMRandomBoundsInstantiator
 This class lets you randomly spawn objects within its bounds (defined by a 3D collider) More...
 
class  MMRandomInstantiator
 Add this class to an empty object, bind a few prefabs into its RandomPool slots, and it'll instantiate one of them at its position/rotation on Start or Awake You can also call its InstantiateRandomObject method at any time, and it'll instantiate another random object on demand, potentially destroying the previous one if you decide so More...
 
class  MMReadOnlyAttribute
 
class  MMReadOnlyAttributeDrawer
 
class  MMReadOnlyWhenPlayingAttribute
 
class  MMRectTransformExtensions
 RectTransform extensions
 
class  MMReferencedScriptableObject
 Auto-referenced ScriptableObject instances of type T An example usage for ReferenceHolder<T> that can be used with any class type More...
 
struct  MMReferenceHolder
 
class  MMRendererLayerEditor
 
class  MMRendererSortingLayer
 
class  MMReorderableArray
 
class  MMReorderableAttributeAttribute
 
class  MMReorderableList
 
class  MMRequiresConstantRepaintAttribute
 
class  MMRequiresConstantRepaintOnlyWhenPlayingAttribute
 
class  MMRigidbodyCenterOfMass
 Add this class to a Rigidbody or Rigidbody2D to be able to edit its center of mass from the inspector directly More...
 
class  MMRigidbodyInterface
 This class acts as an interface to allow the demo levels to work whether the environment (colliders, rigidbodies) are set as 2D or 3D. If you already know for sure that you're going for a 2D or 3D game, I suggest you replace the use of this class with the appropriate classes. More...
 
class  MMRuntimeParticleControl
 Add this class to a particle system at runtime, and it'll expose controls to play/pause/stop it from the inspector Because Unity's built-in controls somehow lack pause when in play mode More...
 
class  MMSaveLoadManager
 Allows the save and load of objects in a specific folder and file.
 
class  MMSaveLoadManagerEncrypter
 This class implements methods to encrypt and decrypt streams More...
 
class  MMSaveLoadManagerMethod
 This component, on Awake or on demand, will force a SaveLoadMethod on the MMSaveLoadManager, changing the way it saves data to file. This will impact all classes that use the MMSaveLoadManager (unless they change that method before saving or loading). If you change the method, your previously existing data files won't be compatible, you'll need to delete them and start with new ones. More...
 
class  MMSaveLoadManagerMethodBinary
 This save load method saves and loads files as binary files More...
 
class  MMSaveLoadManagerMethodBinaryEncrypted
 This save load method saves and loads files as encrypted binary files More...
 
class  MMSaveLoadManagerMethodJson
 
class  MMSaveLoadManagerMethodJsonEncrypted
 
class  MMSaveLoadMenu
 Adds a dedicated Tools menu into the top bar More Mountains entry to delete all saved data
 
class  MMSaveLoadTester
 A simple class used in the MMSaveLoadTestScene to test the MMSaveLoadManager class More...
 
class  MMSaveLoadTestObject
 A test object to store data to test the MMSaveLoadManager class More...
 
class  MMScene
 Scene management helpers More...
 
class  MMSceneLoadingAntiSpill
 This helper class, meant to be used by the MMAdditiveSceneLoadingManager, creates a temporary scene to store objects that might get instantiated, and empties it in the destination scene once loading is complete More...
 
class  MMSceneLoadingManager
 A class to load scenes using a loading screen instead of just the default API This class used to be known as LoadingSceneManager, and has now been renamed to MMSceneLoadingManager for consistency More...
 
class  MMSceneLoadingSpeedInterval
 A class used to define different interpolation speeds for specific progress intervals More...
 
class  MMSceneRestarter
 This component lets you restart a scene by pressing a key More...
 
class  MMSceneViewIcon
 Add this class to a gameobject and it'll display its name on the scene view, selected or not. More...
 
class  MMScreenshot
 Add this class to an empty game object in your scene and it'll let you take screenshots (meant to be used in Editor) More...
 
class  MMScreenshotEditor
 
class  MMSelectionBase
 Add this component to an object and it'll always get selection in scene view, even if you select one of its children More...
 
class  MMSerializableDictionary
 A serializable dictionary implementation, as Unity still can't serialize Dictionaries natively More...
 
class  MMSerializedPropertyExtensions
 Serialized property extensions
 
struct  MMSfxEvent
 A struct used to trigger sounds More...
 
class  MMShufflebag
 A class to use to get more controlled randomness, taking values out of the bag randomly, and never getting them again. More...
 
class  MMSignal
 This class lets you output the value corresponding to one of the basic signal types it contains. Useful to draw basic signal curves. More...
 
class  MMSimpleObjectPooler
 A simple object pool outputting a single type of objects More...
 
class  MMSingleton
 Singleton pattern. More...
 
class  MMSMPlaylist
 
class  MMSMPlaylistManager
 
class  MMSMPlaylistSong
 A definition of a song, a part of a MMSM Playlist More...
 
class  MMSoundManager
 A simple yet powerful sound manager, that will let you play sounds with an event based approach and performance in mind. More...
 
struct  MMSoundManagerAllSoundsControlEvent
 This event will let you pause/play/stop/free all sounds playing through the MMSoundManager at once More...
 
class  MMSoundManagerAudioPool
 This class manages an object pool of audiosources More...
 
struct  MMSoundManagerEvent
 This event will let you trigger a save/load/reset on the MMSoundManager settings More...
 
struct  MMSoundManagerPlayOptions
 A class used to store options for MMSoundManager play More...
 
class  MMSoundManagerSettings
 This class stores MMSoundManager settings and lets you tweak them from the MMSoundManagerSettingsSO's inspector More...
 
class  MMSoundManagerSettingsSO
 A class to save sound settings (music on or off, sfx on or off) More...
 
struct  MMSoundManagerSound
 A simple struct used to store information about the sounds played by the MMSoundManager More...
 
struct  MMSoundManagerSoundControlEvent
 An event used to control a specific sound on the MMSoundManager. You can either search for it by ID, or directly pass an audiosource if you have it. More...
 
struct  MMSoundManagerSoundFadeEvent
 This event will let you pause More...
 
struct  MMSoundManagerSoundPlayEvent
 This event will let you play a sound on the MMSoundManager More...
 
struct  MMSoundManagerTrackEvent
 This feedback will let you mute, unmute, play, pause, stop, free or set the volume of a selected track More...
 
struct  MMSoundManagerTrackFadeEvent
 This event will let you order the MMSoundManager to fade an entire track's sounds' volume towards the specified FinalVolume More...
 
class  MMSpawnAround
 This static class is a spawn helper, useful to randomize position, rotation and scale when you need to instantiate objects

 
class  MMSpawnAroundProperties
 This class is used to describe spawn properties, to be used by the MMSpawnAround class. It's meant to be exposed and used by classes that are designed to spawn objects, typically loot systems More...
 
class  MMSpawnAroundTester
 A tester class used to show how the MMSpawnAround class can be used More...
 
class  MMSpeedTest
 Use this class to run performance tests in your code. It'll output the time spent between the StartTest and the EndTest calls Make sure to use a unique ID for both calls
 
struct  MMSpeedTestItem
 A struct to store data associated to speed tests More...
 
class  MMSpriteMask
 This class will automatically look for sprite renderers, particle systems, tilemaps in the scene, and change their SpriteMaskInteraction settings according to the one set in the inspector Use the NoMask tag on objects you don't want automatically setup More...
 
struct  MMSpriteMaskEvent
 An event type used to set a new size for the mask from any class More...
 
class  MMSquashAndStretch
 This component will automatically update scale and rotation Put it one level below the top, and have the model one level below that Hierarchy should be as follows : More...
 
struct  MMStateChangeEvent
 
class  MMStateMachine
 StateMachine manager, designed with simplicity in mind (as simple as a state machine can be anyway). To use it, you need an enum. For example : public enum CharacterConditions { Normal, ControlledMovement, Frozen, Paused, Dead } Declare it like so : public StateMachine<CharacterConditions> ConditionStateMachine; Initialize it like that : ConditionStateMachine = new StateMachine<CharacterConditions>(); Then from anywhere, all you need to do is update its state when needed, like that for example : ConditionStateMachine.ChangeState(CharacterConditions.Dead); The state machine will store for you its current and previous state, accessible at all times, and will also optionnally trigger events on enter/exit of these states. More...
 
class  MMStayInPlace
 This class forces a transform to stay at a fixed position, rotation and/or scale. More...
 
class  MMStopMotionAnimation
 
class  MMString
 String helpers
 
class  MMTilemap
 A collection of helper methods for interacting with Tilemaps More...
 
class  MMTilemapBoolean
 
class  MMTilemapCleaner
 A super simple component you can add to a tilemap to get a button to clean it from all tiles More...
 
class  MMTilemapGenerator
 This class will fill a tilemap with the data generated by the combination of its layers More...
 
class  MMTilemapGeneratorEditor
 Custom editor for the MMTilemapGenerator, handles generate button and reorderable layers More...
 
class  MMTilemapGeneratorLayer
 A class used to store and edit the data of MMTilemapGenerator layers, which you can use and combine to generate unique and random grids More...
 
class  MMTilemapGeneratorLayerList
 A class used to display a reoderable list of MMTilemapGeneratorLayers More...
 
class  MMTilemapGridRenderer
 
class  MMTilemapShadow
 A class to put on a tilemap so it acts as a shadow/copy of another reference tilemap. Useful for wall shadows for example. Offsetting the tilemap and changing its sorting order etc is done via the regular components More...
 
class  MMTime
 Time helpers More...
 
class  MMTimedActivation
 Add this component to an object and it'll be auto destroyed X seconds after its Start() More...
 
class  MMTimedDestruction
 Add this component to an object and it'll be auto destroyed X seconds after its Start() More...
 
class  MMToggleActive
 This very simple class simply exposes a method to toggle the GameObject it's on (or a target one if left empty in the inspector) active or inactive More...
 
class  MMTouchControls
 
class  MMTrailRendererLayerEditor
 
class  MMTrailRendererSortingLayer
 
class  MMTransformRandomizer
 Add this component to an object to randomize its position/rotation/scale on demand or automatically More...
 
class  MMTransformRandomizerEditor
 Custom editor for the MMTransformRandomizer class More...
 
class  MMTriggerAndCollision
 
class  MMTriggerAndCollisionEditor
 
class  MMTriggerAndCollisionFilter
 
class  MMTriggerFilter
 
class  MMTween
 The formulas described here are (loosely) based on Robert Penner's easing equations http://robertpenner.com/easing/ More...
 
class  MMTweenDefinitions
 
class  MMTweenType
 
class  MMTweenTypeDrawer
 
class  MMTwoSidedUI
 This class lets you define an axis on which to flip a "two sided" UI element (made of two separate and usually aligned objects, effectively turning each side on/off everytime the container's scale goes above/below a certain threshold More...
 
class  MMUIFollowMouse
 This component will let you have a UI object follow the mouse position More...
 
class  MMVector2Extensions
 Vector2 extensions
 
class  MMVector3Extensions
 Vector3 Extensions
 
class  MMVector4Extensions
 Vector4 Extensions
 
class  MMVectorAttribute
 
class  MMVectorLabelsAttributeDrawer
 
class  MMViewportEdgeTeleporter
 Add this class to an object and it will automatically teleport to the other end of the screen when reaching the screen's edges More...
 
class  MMVisibleParticle
 Adds this class to particles to force their sorting layer More...
 
class  MonoAttribute
 
class  ObjectBoundsEditor
 
class  PeaksSaver
 A static class used to save / load peaks once they've been computed
 
class  PlatformBindings
 A class used to store bindings More...
 
class  ProgressEvent
 
class  RagdollBodyPart
 A class used to store ragdoll body parts informations More...
 
class  Ratio
 A class to store ratio display info More...
 
class  RectExtensions
 Rect extensions
 
class  RendererExtensions
 Renderer extensions
 
class  ReorderableDrawer
 
class  SceneViewIconEditor
 This class adds names for each LevelMapPathElement next to it on the scene view, for easier setup More...
 
class  SelectionBase
 Add this component to an object and it'll always get selection in scene view, even if you select one of its children More...
 
class  SerializedMMAchievement
 A serializable class used to store an achievement into a save file More...
 
class  SerializedMMAchievementManager
 Serializable MM achievement manager. More...
 
class  TransformController
 A simple class used to control properties on a transform More...
 
class  TransformExtensions
 Transform extensions
 

Enumerations

enum  TriggerAndCollisionMask {
  TriggerAndCollisionMask.IgnoreAll = 0, TriggerAndCollisionMask.OnTriggerEnter = 1 << 0, TriggerAndCollisionMask.OnTriggerStay = 1 << 1, TriggerAndCollisionMask.OnTriggerExit = 1 << 2,
  TriggerAndCollisionMask.OnCollisionEnter = 1 << 3, TriggerAndCollisionMask.OnCollisionStay = 1 << 4, TriggerAndCollisionMask.OnCollisionExit = 1 << 5, TriggerAndCollisionMask.OnTriggerEnter2D = 1 << 6,
  TriggerAndCollisionMask.OnTriggerStay2D = 1 << 7, TriggerAndCollisionMask.OnTriggerExit2D = 1 << 8, TriggerAndCollisionMask.OnCollisionEnter2D = 1 << 9, TriggerAndCollisionMask.OnCollisionStay2D = 1 << 10,
  TriggerAndCollisionMask.OnCollisionExit2D = 1 << 11, TriggerAndCollisionMask.OnAnyTrigger3D = OnTriggerEnter | OnTriggerStay | OnTriggerExit, TriggerAndCollisionMask.OnAnyCollision3D = OnCollisionEnter | OnCollisionStay | OnCollisionExit, TriggerAndCollisionMask.OnAnyTrigger2D = OnTriggerEnter2D | OnTriggerStay2D | OnTriggerExit2D,
  TriggerAndCollisionMask.OnAnyCollision2D = OnCollisionEnter2D | OnCollisionStay2D | OnCollisionExit2D, TriggerAndCollisionMask.OnAnyTrigger = OnAnyTrigger3D | OnAnyTrigger2D, TriggerAndCollisionMask.OnAnyCollision = OnAnyCollision3D | OnAnyCollision2D, TriggerAndCollisionMask.All_3D = OnAnyTrigger3D | OnAnyCollision3D,
  TriggerAndCollisionMask.All_2D = OnAnyTrigger2D | OnAnyCollision2D, TriggerAndCollisionMask.All = All_3D | All_2D
}
 
enum  MMBackgroundAttributeColor {
  MMBackgroundAttributeColor.Red, MMBackgroundAttributeColor.Pink, MMBackgroundAttributeColor.Orange, MMBackgroundAttributeColor.Yellow,
  MMBackgroundAttributeColor.Green, MMBackgroundAttributeColor.Blue, MMBackgroundAttributeColor.Violet, MMBackgroundAttributeColor.White
}
 
enum  MMSoundManagerAllSoundsControlEventTypes {
  MMSoundManagerAllSoundsControlEventTypes.Pause, MMSoundManagerAllSoundsControlEventTypes.Play, MMSoundManagerAllSoundsControlEventTypes.Stop, MMSoundManagerAllSoundsControlEventTypes.Free,
  MMSoundManagerAllSoundsControlEventTypes.FreeAllButPersistent, MMSoundManagerAllSoundsControlEventTypes.FreeAllLooping
}
 
enum  MMSoundManagerEventTypes { MMSoundManagerEventTypes.SaveSettings, MMSoundManagerEventTypes.LoadSettings, MMSoundManagerEventTypes.ResetSettings, MMSoundManagerEventTypes.SettingsLoaded }
 
enum  MMSoundManagerSoundControlEventTypes { MMSoundManagerSoundControlEventTypes.Pause, MMSoundManagerSoundControlEventTypes.Resume, MMSoundManagerSoundControlEventTypes.Stop, MMSoundManagerSoundControlEventTypes.Free }
 
enum  MMSoundManagerTrackEventTypes {
  MMSoundManagerTrackEventTypes.MuteTrack, MMSoundManagerTrackEventTypes.UnmuteTrack, MMSoundManagerTrackEventTypes.SetVolumeTrack, MMSoundManagerTrackEventTypes.PlayTrack,
  MMSoundManagerTrackEventTypes.PauseTrack, MMSoundManagerTrackEventTypes.StopTrack, MMSoundManagerTrackEventTypes.FreeTrack
}
 
enum  MMPoolingMethods { MMPoolingMethods.OriginalOrder, MMPoolingMethods.OriginalOrderSequential, MMPoolingMethods.RandomBetweenObjects, MMPoolingMethods.RandomPoolSizeBased }
 The various methods you can pull objects from the pool with More...
 
enum  MMPersistenceEventType { MMPersistenceEventType.DataSavedToMemory, MMPersistenceEventType.DataLoadedFromMemory, MMPersistenceEventType.DataSavedFromMemoryToFile, MMPersistenceEventType.DataLoadedFromFileToMemory }
 The various types of persistence events that can be triggered by the MMPersistencyManager More...
 
enum  MMSaveLoadManagerMethods { MMSaveLoadManagerMethods.Json, MMSaveLoadManagerMethods.JsonEncrypted, MMSaveLoadManagerMethods.Binary, MMSaveLoadManagerMethods.BinaryEncrypted }
 The possible methods to save and load files to and from disk available in the MMSaveLoadManager More...
 
enum  MMTweenDefinitionTypes { MMTweenDefinitionTypes.MMTween, MMTweenDefinitionTypes.AnimationCurve }
 
enum  AchievementTypes { AchievementTypes.Simple, AchievementTypes.Progress }
 This achievement system supports 2 types of achievements : simple (do something > get achievement), and progress based (jump X times, kill X enemies, etc). More...
 

Enumeration Type Documentation

◆ AchievementTypes

This achievement system supports 2 types of achievements : simple (do something > get achievement), and progress based (jump X times, kill X enemies, etc).

Enumerator
Simple 
Progress 

◆ MMBackgroundAttributeColor

Enumerator
Red 
Pink 
Orange 
Yellow 
Green 
Blue 
Violet 
White 

◆ MMPersistenceEventType

The various types of persistence events that can be triggered by the MMPersistencyManager

Enumerator
DataSavedToMemory 
DataLoadedFromMemory 
DataSavedFromMemoryToFile 
DataLoadedFromFileToMemory 

◆ MMPoolingMethods

The various methods you can pull objects from the pool with

Enumerator
OriginalOrder 
OriginalOrderSequential 
RandomBetweenObjects 
RandomPoolSizeBased 

◆ MMSaveLoadManagerMethods

The possible methods to save and load files to and from disk available in the MMSaveLoadManager

Enumerator
Json 
JsonEncrypted 
Binary 
BinaryEncrypted 

◆ MMSoundManagerAllSoundsControlEventTypes

Enumerator
Pause 
Play 
Stop 
Free 
FreeAllButPersistent 
FreeAllLooping 

◆ MMSoundManagerEventTypes

Enumerator
SaveSettings 
LoadSettings 
ResetSettings 
SettingsLoaded 

◆ MMSoundManagerSoundControlEventTypes

Enumerator
Pause 
Resume 
Stop 
Free 

◆ MMSoundManagerTrackEventTypes

Enumerator
MuteTrack 
UnmuteTrack 
SetVolumeTrack 
PlayTrack 
PauseTrack 
StopTrack 
FreeTrack 

◆ MMTweenDefinitionTypes

Enumerator
MMTween 
AnimationCurve 

◆ TriggerAndCollisionMask

Enumerator
IgnoreAll 
OnTriggerEnter 
OnTriggerStay 
OnTriggerExit 
OnCollisionEnter 
OnCollisionStay 
OnCollisionExit 
OnTriggerEnter2D 
OnTriggerStay2D 
OnTriggerExit2D 
OnCollisionEnter2D 
OnCollisionStay2D 
OnCollisionExit2D 
OnAnyTrigger3D 
OnAnyCollision3D 
OnAnyTrigger2D 
OnAnyCollision2D 
OnAnyTrigger 
OnAnyCollision 
All_3D 
All_2D 
All