Highroad Engine v1.3
|
▼NMoreMountains | |
►NHighroadEngine | |
CAirCarBehaviour | Graphics and particles behaviour |
CAirCarController | Air Car controller class. Manages inputs from InputManager and driving of the hover car You can customize the properties for different types of vehicles. |
CBackgroundMusic | Add this class to a GameObject to play a background music when instanciated. Only one background music will be played at a time. |
CBaseController | Base class controller. Must be used by vehicles specific controllers. Manages Score and input management. |
CButtonNavigation | This class allows keyboard navigation (up and down arrows by default) through a set of buttons |
CCameraController | Camera controller base class. Meant to be extended. |
CCarBehaviour | Car behaviour class. Manages car behaviour in the race. This class is in charge of the particles emitted by the car, the smoke, sounds and moving parts. It depends on a CarController class to get data like speed or steering info |
CCarController | Car controller class. Manages inputs from InputManager and driving evaluation You can customize the car properties for different types of cars |
CDeathGround | Respawn vehicles when they hit the collider this class is attached to. Works only with SolidController. |
CDemonstratorManager | This class allows for a fast demo scene boot, without a RaceManager You just have to put it in a scene for the cameras to auto bind themselves to the vehicle and for that vehicle to be bound to Player1's input. If more than one vehicle/camera are present in the scene and active, a button appears in the GUI to switch between vehicles and cameras Disabling FindCamerasInScene and FindVehiclesInScene allows you to associate cameras and vehicles manually via the Cameras and Vehicles lists |
CFaderManager | Handles all GUI effects and changes |
CGravityManager | Modifies the scene's gravity This allows for fine tuning of the vehicle's physics By default the value is earth gravity * 3 |
CIActorInput | An interface listing available input actions |
CIGenericLobbyManager | Generic lobby manager interface (local and online). Used by the race manager to get info about the players and send commands to the current Lobby Manager |
CIGenericLobbyPlayer | Stores data about a player in the lobby screen |
CIGenericMatchInfo | Generic MatchEntry for lobby Interface. Used by lobby UI to list all matches a user can join |
CIGenericNetworkLobbyManager | Generic network lobby manager interface. Used by the race manager to get info about the players and send commands to the current Lobby Manager |
CILobbyPlayerInfo | Stores data about a player in the lobby screen |
CINetworkVehicle | A simple interface used by the network manager to set properties to vehicle objects when starting the game. For now, only the player name is generic. |
CInputManager | This persistent singleton handles the inputs and sends commands to the active players |
CIsometricCameraController | Camera controller following a target or a group of targets with an orthographic view. |
CLoadingSceneManager | A class used to load new scenes while displaying a loading screen |
CLocalLobbyGameUI | This class manages game scene choice and game state in the local lobby scene. |
CLocalLobbyManager | This singleton class manages the list of players between races and lobby operations |
CLocalLobbyPlayer | Local lobby player. |
CLocalLobbyPlayerUI | This class manages a player on the lobby/menu screen. Implements IActorInput interface for UI manipulation |
CMatchInfo | Generic MatchEntry for lobby Interface. Used by lobby UI to list all matches for the user to join |
COnlineLobbyMatchEntry | Online lobby match entry UI element. Used to join a specific match in matchmaking |
COnlineLobbyProxy | Online lobby proxy. Various Networking solutions will register themselves to this instance because they all must implement IGenericNetworkedLobbyManager interface |
COnlineLobbySdkBroker | Online lobby sdk broker. Manages the various online sdk that Highroad Engine supports, to avoid duplicating scenes. Will destroy itself once setup is done. |
COnlineLobbyUI | References to the various UI elements in the online lobby scene |
COnlineSdkBroker | Online sdk broker. Manages the various online sdk that Highroad Engine supports, to avoid duplicating scenes. Will destroy itself once setup is done. |
CParallelCamera | A camera parallel to the target. The car's distance is parametrable. A Mouse mode allows for moving the target point by drag and drop in the game scene |
CPunLobbyManager | |
CPunLobbyPlayer | This class manages the player state in the lobby. |
CPunRaceManager | If the game is an online PUN Game, this class overrides methods from Race Manager to manage specific online parts. In case of local mode, this class is automatically disabled. |
CPunVehicleController | Network vehicle controller. In charge of the network manager for players in game |
CRaceManager | Race manager. Class in charge of the cars instantiation, camera, ranking and UI. Have a look at the Start() method for race initialisation and Update() for game management. |
►CSkidmarksManager | This class handles mesh generation for skidmarks, for all vehicles in the scene. You just have to put an instance of it in your scene. Note : this class is inspired by the Unity Car Tutorial skidmarks script, and optimized to improve performance. |
CSection | Mark's section, used to store the mesh data |
CSolidBehaviourExtender | A utility class allowing you to extend the behaviour of a Solid vehicle. For example to add lights, skidmarks management, etc. You just have to implement the update and initialization if necessary. |
CSolidController | Solid Controller class, that handles vehicles with suspension This allows for a more dynamic behaviour of the vehicles and allows for bumpy roads, slopes or even loops This controller also offers easier extendability thanks to the SolidBehaviourExtender. If you want to create a vehicle using this controller, you'll need to setup its suspension correctly, and pay attention to the weight repartition. For that, you can simply duplicate one of the demo vehicles, or have a look at the documentation that explains how to setup a vehicle, step by step. |
CSolidObstacleParticlesEmitter | This class handles particle emission when colliding with something |
CSolidSmokesBehaviour | This class handles smoke emission when the gas pedal is on |
CSolidSoundBehaviour | This class handles vehicle's sound : motor sound and crash sound |
CSolidWheelBehaviour | This class handles physics behaviour (suspension mostly) and wheel display based on current vehicle dynamics |
CSolidWheelSkidmarks | This class handles skidmarks production for a wheel attached to a SolidWheel |
CSoundManager | This persistent singleton handles sound playing |
CStartScreen | Simple class to allow the player to select a scene on the start screen |
CThirdPersonCameraController | 3D Camera controller following a single target in perspective |
CTouchZone | Add this component to a GUI button to have it act as a proxy for a certain action on touch devices. Detects press down, press up, and continuous press. These are really basic mobile/touch controls. I believe that for infinite runners they're sufficient. |
CVehicleAI | Manages the driving with a simple AI : the AI follows each AIWaypoint in their order |
CVehicleInformation | Simple class to store vehicle info shown in the lobby |
CWaypoints | Manages waypoints of the AI. The AI will follow each point of the items collection in order and loops. |
►NTools | |
CAIAction | Actions are behaviours and describe what your character is doing. Examples include patrolling, shooting, jumping, etc. |
CAIActionPropertyInspector | |
CAIActionsList | |
CAIBrain | 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. |
CAIBrainEditor | |
CAIDecision | 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. |
CAIState | 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_". |
CAITransition | 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_". |
CAITransitionPropertyInspector | |
CAITransitionsList | |
CAxisEvent | |
CBeat | |
CFloatController | 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 |
CFloatControllerEditor | Custom editor for the FloatController, conditional hiding and dropdown fill |
CFogSettings | A simple class used to store fog properties |
CHealthBarEditor | Custom editor for health bars (mostly a switch for prefab based / drawn bars |
CIMMSaveLoadManagerMethod | An interface to implement save and load using different methods (binary, json, etc) |
CJoystickEvent | |
CLightController | A class used to control the intensity of a light |
CMMAchievement | |
CMMAchievementChangedEvent | |
CMMAchievementDisplayer | A class used to display the achievements on screen. The AchievementDisplayItems will be parented to it, so it's better if it has a LayoutGroup (Vertical or Horizontal) too. |
CMMAchievementDisplayItem | This class is used to display an achievement. Add it to a prefab containing all the required elements listed below. |
CMMAchievementList | A scriptable object containing a list of achievements. You need to create one and store it in a Resources folder for this to work. |
CMMAchievementListInspector | Custom inspector for the MMAchievementList scriptable object. |
CMMAchievementRules | That class is meant to be extended to implement the achievement rules specific to your game. |
CMMAchievementUnlockedEvent | An event type used to broadcast the fact that an achievement has been unlocked |
CMMActivationOnStart | Use this class to enable or disable other gameobjects automatically on Start or Awake |
CMMAdditiveSceneLoadingManager | 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) |
CMMAdditiveSceneLoadingManagerSettings | A simple class used to store additive loading settings |
CMMAim | |
CMMAnimationCurveGenerator | 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 |
CMMAnimationModifier | Add this script to an animation in Mecanim and you'll be able to control its start position and speed |
CMMAnimationParameter | A helper class that will hash a animation parameter and update it on demand |
►CMMAnimatorMirror | 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. |
CMMAnimatorMirrorBind | Struct used to store bindings |
CMMApplicationPlatformActivation | Add this class to a gameobject, and it'll enable/disable it based on platform context, using Application.platform to detect the platform |
CMMApplicationQuit | A super simple mono you can add to an object to call its Quit method, which will force the application to quit. |
CMMArray | Array helpers |
CMMAspectRatioSafeZones | A class to handle the automatic display of safe zones for the different ratios setup in the inspector |
CMMAspectRatioSafeZonesEditor | Custom editor for the MMScreenSafeZones component |
CMMAudioAnalyzer | 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. |
CMMAudioEvents | |
CMMAudioListener | 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. |
CMMAutoDestroyParticleSystem | 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 |
CMMAutoExecution | 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 |
CMMAutoExecutionItem | A data class to store auto execution info to be used in MMAutoExecution |
CMMAutoOrderInLayer | Add this component to an object to have it pick a new order in layer on start, useful to have unique sorting layer numbers |
CMMAutoRotate | Add this class to a GameObject to make it rotate on itself |
CMMAutoRotateEditor | Custom editor for the MMAutoRotate component |
CMMBackgroundColorAttribute | |
CMMBackgroundColorAttributeDrawer | |
CMMBeatEvent | An event you can listen to that will get automatically triggered for every remapped beat |
CMMBezierLineRenderer | Add this class to a line renderer and it'll add control points that let you turn your line into a bezier curve |
CMMBillboard | Add this class to an object (usually a sprite) and it'll face the camera at all times |
CMMBoundsExtensions | Bounds helpers |
CMMCameraAspectRatio | Forces an aspect ratio on a camera |
CMMCameraFog | Add this class to a camera (or any object) and it will override fog settings when active |
CMMChangeFogColor | Adds this class to a UnityStandardAssets.ImageEffects.GlobalFog to change its color Why this is not native, I don't know. |
CMMCinemachineZone | An abstract class that lets you define a zone that, when entered, enables a virtual camera, and takes care of all the boilerplate setup |
CMMCinemachineZone2D | 2D Implementation of the CinemachineZone abstract class |
CMMCinemachineZone3D | 3D Implementation of the CinemachineZone abstract class |
CMMCleanEmptyFolders | A maintenance class that removes all empty directories from a project via a menu item |
CMMCleanupMissingScripts | This class lets you clean all missing scripts on a selection of gameobjects |
CMMColorAttribute | |
CMMColorAttributeDrawer | |
CMMConditionalActivation | Add this component to a gameobject, and it'll let you enable target monos after all other targets have been disabled |
CMMConditionAttribute | |
CMMConditionAttributeDrawer | |
►CMMConeOfVision | 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! |
CMeshEdgePosition | |
CRaycastData | A struct to store raycast data |
►CMMConeOfVision2D | |
CMeshEdgePosition | |
CRaycastData | |
CMMConeOfVision2DInspector | |
CMMConeOfVisionInspector | |
CMMConsole | 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 |
CMMControlsTestInputManager | This persistent singleton handles the inputs and sends commands to the player in the MMControls demo, its sole purpose is to output debug logs of the various interactions with the demo's inputs |
CMMCooldown | 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 |
►CMMCountdown | |
CMMCountdownFloor | A class to store floor information |
CMMCursorVisible | Add this class to an object and it'll make sure that the cursor is either visible or invisible |
CMMDButtonPressedEvent | An event fired when a button gets pressed in a MMDebugMenu |
CMMDCheckboxFalseEvent | |
CMMDCheckboxPressedEvent | |
CMMDCheckboxTrueEvent | |
CMMDebugController | 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 |
CMMDebugEditor | An editor class used to display menu items |
CMMDebugLogCommandArgumentCountAttribute | An attribute to add to static methods to they can be called via the MMDebugMenu's command line |
CMMDebugLogCommandAttribute | An attribute to add to static methods to they can be called via the MMDebugMenu's command line |
CMMDebugMenu | A debug menu helper, meant to help create quick mobile friendly debug menus |
CMMDebugMenuButtonEvent | An event used to broadcast button events from a MMDebugMenu |
CMMDebugMenuButtonEventListener | A class used to listen to button events from a MMDebugMenu |
CMMDebugMenuCheckboxEvent | An event used to broadcast checkbox events from a MMDebugMenu |
CMMDebugMenuCheckboxEventListener | A class used to listen to events from a MMDebugMenu's checkbox |
CMMDebugMenuChoiceEntry | A class used to store choices contents |
CMMDebugMenuCommands | Command lines to be run from the MMDebugMenu To add new ones, add the [MMDebugLogCommand] attribute to any static method |
CMMDebugMenuData | A data class used to store the contents of a debug menu |
CMMDebugMenuDebugTab | A class used to handle the display of a debug log tab in a MMDebugMenu |
CMMDebugMenuItem | A class used to store a menu item |
CMMDebugMenuItemButton | A class used to bind a button to a MMDebugMenu |
CMMDebugMenuItemCheckbox | A class used to bind a checkbox to a MMDebugMenu |
CMMDebugMenuItemChoices | A class used to bind a Choice menu item to a MMDebugMenu |
CMMDebugMenuItemList | A class used to store and display a reorderable list of menu items |
CMMDebugMenuItemSlider | A class used to bind a slider to a MMDebugMenu |
CMMDebugMenuItemText | A class used to bind a text item to a MMDebugMenu |
CMMDebugMenuItemTitle | A class used to bind a title item to a MMDebugMenu |
CMMDebugMenuItemValue | A class used to bind a value item to a MMDebugMenu |
CMMDebugMenuRadioButton | A class to handle radio buttons. To group them, just use the same RadioButtonGroupName string for all radio buttons in the group |
CMMDebugMenuSliderEvent | An event used to broadcast slider events from a MMDebugMenu |
CMMDebugMenuSliderEventListener | A class used to listen to slider events from a MMDebugMenu |
CMMDebugMenuSpriteReplace | A class to add to an image to have it act like a button with a different sprite for on and off states |
CMMDebugMenuSwitch | A component to handle switches |
CMMDebugMenuTab | A class used to handle the display of a tab in a MMDebugMenu |
CMMDebugMenuTabContents | A class used to describe tab contents |
CMMDebugMenuTabData | |
CMMDebugMenuTabManager | A class used to keep track of tabs and their contents in a MMDebugMenu |
CMMDebugMenuTestClass | A simple test class used in the MMDebugMenu demo scene to shake a few values and output them in the debug on screen console |
CMMDebugOnScreenConsole | |
CMMDebugTouchDisplay | 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 |
CMMDelayParticles | MM delay particles. |
CMMDontDestroyOnLoad | Add this component to an object and it'll persist across scenes |
CMMDropdownAttribute | |
CMMDropdownAttributeDrawer | |
CMMDSliderValueChangedEvent | |
CMMEnumConditionAttribute | An attribute to conditionnally hide fields based on the current selection in an enum. Usage : [MMEnumCondition("rotationMode", (int)RotationMode.LookAtTarget, (int)RotationMode.RotateToAngles)] |
CMMEnumConditionAttributeDrawer | |
CMMEventListener | A public interface you'll need to implement for each type of event you want to listen to. |
CMMEventListenerBase | Event listener basic interface |
CMMExecutionOrderAttribute | Add this attribute to a class and its Execution Order will be changed to the value specified in parameters Usage : [ExecutionOrder(66)] |
CMMFaceDirection | Use this script to have a Transform automatically face a certain direction, whether its own movement direction, or a specific target Transform |
CMMFadeEvent | Events used to trigger faders on or off |
CMMFadeInEvent | |
CMMFadeOutEvent | |
CMMFader | The Fader class can be put on an Image, and it'll intercept MMFadeEvents and turn itself on or off accordingly. |
CMMFaderDirectional | 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 |
CMMFaderRound | The Fader class can be put on an Image, and it'll intercept MMFadeEvents and turn itself on or off accordingly. |
CMMFadeStopEvent | An event used to stop fades |
CMMFloatingText | A class used to handle the movement and behaviour of floating texts, usually used to display damage text. This is designed to be spawned by a MMFloatingTextSpawner, not used on its own. It also requires a specific hierarchy. You'll find examples of it in the MMTools/Tools/MMFloatingText/Prefabs folder |
CMMFloatingTextMeshPro | A floating text variant using TextMeshPro instead of regular TextMesh |
CMMFloatingTextSpawner | This class will let you pool, recycle and spawn floating texts, usually to show damage info. It requires as input a MMFloatingText object. |
CMMFloatingTextSpawnEvent | An event used (usually by feedbacks) to trigger the spawn of a new floating text |
CMMFollowTarget | Add this component to an object and it'll get moved towards the target at update, with or without interpolation based on your settings |
CMMFPSCounter | Add this class to a gameObject with a Text component and it'll feed it the number of FPS in real time. |
CMMFPSUnlock | 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. |
CMMGameEvent | MMGameEvents are used throughout the game for general game events (game started, game ended, life lost, etc.) |
CMMGetFocusOnEnable | 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 |
CMMGhostCamera | Add this class to a camera and you'll be able to pilot it using the horizontal/vertical axis, and up/down controls set via its inspector. It's got an activation button, a run button, and an option to slow down time (this will require a MMTimeManager present in the scene) |
CMMGridGenerator | |
CMMGridGeneratorFull | Generates a grid of the specified size, either entirely full or empty |
CMMGridGeneratorPath | Generates a grid with a path in the specified direction |
CMMGridGeneratorPerlinNoise | Generates a grid of the specified size based on a seeded perlin noise, the smaller the seed, the blockier the grid |
CMMGridGeneratorPerlinNoiseGround | Generates a grid with a ground floor |
CMMGridGeneratorRandom | Generates a simple grid filled with random points |
CMMGridGeneratorRandomWalk | Generates a grid with a path carved by a drunkard walk algorithm See http://pcg.wikidot.com/pcg-algorithm:drunkard-walk |
CMMGridGeneratorRandomWalkAvoider | Generates a grid with a path carved by a drunkard walk algorithm that will avoid another grid's walls |
CMMGridGeneratorRandomWalkGround | Uses random walk to generate a ground with controlled elevation |
CMMGroupSelection | A class used to add a menu item and a shortcut to group objects together under a parent game object |
CMMGyroCam | A class used to store gyro properties per camera |
CMMGyroParallax | 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 |
CMMGyroscope | |
CMMHealthBar | 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 |
CMMHiddenAttribute | |
CMMHiddenAttributeDrawer | |
CMMHiddenPropertiesAttribute | |
CMMImage | Image helpers |
CMMInformationAttribute | |
►CMMInput | Input helpers |
CIMButton | IM button, short for InputManager button, a class used to handle button states, whether mobile or actual keys |
CMMInputExecution | A simple class used to bind target keys to specific events to trigger when the key is pressed or released |
CMMInputExecutionBinding | A class used to store MMInputExecution bindings, associating a target keycode to UnityEvents |
CMMInspectorButtonAttribute | |
CMMInspectorGroupAttribute | An attribute used to group inspector fields under common dropdowns Implementation inspired by Rodrigo Prinheiro's work, available at https://github.com/RodrigoPrinheiro/unityFoldoutAttribute |
CMMInspectorGroupData | |
CMMIStateMachine | Public interface for the state machine. |
CMMLayer | |
CMMLayerPropertyDrawer | |
CMMLayers | |
CMMLineRendererCircle | |
CMMLineRendererDriver | This component, added to a line renderer, will let you fill a list of transforms, and bind their positions to the linerenderer's positions. |
CMMLoadScene | Add this component on an object, specify a scene name in its inspector, and call LoadScene() to load the desired scene. |
CMMLockInspector | A simple class that lets you lock the current inspector by pressing ctrl (or cmd) + L Pressing the same shortcut again unlocks the |
CMMLoot | A class defining the contents of a MMLootTable |
CMMLootFloat | a MMLoot implementation for floats |
CMMLootGameObject | a MMLoot implementation for gameobjects |
CMMLootString | a MMLoot implementation for strings |
CMMLootTable | 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/ |
CMMLootTableFloat | A MMLootTable implementation for floats |
CMMLootTableGameObject | A MMLootTable implementation for GameObjects |
CMMLootTableGameObjectSO | A scriptable object containing a MMLootTable definition for game objects |
CMMLootTableString | A MMLootTable implementation for strings |
CMMMeshToPolygonCollider2D | A class that lets you create polygon collider 2D out of mesh filters |
CMMMonoBehaviour | |
CMMMonoBehaviourDrawer | A generic drawer for all MMMonoBehaviour, handles both the Group and RequiresConstantRepaint attributes |
CMMMultipleObjectPooler | This class allows you to have a pool of various objects to pool from. |
CMMMultipleObjectPoolerObject | Multiple object pooler object. |
CMMObjectBounds | |
CMMObjectPool | |
CMMObjectPooler | 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. |
CMMObservable | 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 : |
CMMObservableDemoObserver | A test class used to demonstrate the MMObservable in the MMObservableTest demo scene |
CMMObservableDemoObserverAutoSleep | 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 |
CMMObservableDemoSubject | A test class used to demonstrate how MMObservable works in the MMObservableTest demo scene |
CMMOffsetAnimation | Use this class to offset an animation by a random range |
CMMOnMouse | Attach this class to a collider and it'll let you trigger events when the user clicks/drags/enters/etc that collider |
CMMOpenURL | A class used to open a URL specified in its inspector |
CMMOrbitalCamera | A class used to make a camera orbit around a target |
CMMPanningTexture | 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 |
►CMMParallaxUI | 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 |
CParallaxLayer | A class used to store layer settings |
CMMParentingOnStart | 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 |
CMMPath | Add this component to an object and you'll be able to define a path, that can then be used by another component |
CMMPathMovement | Add this component to an object and it'll be able to move along a path defined from its inspector. |
CMMPathMovementElement | This class describes a node on an MMPath |
CMMPeriodicExecution | This class will let you trigger a OnRandomInterval event periodically, at random intervals |
CMMPersistentHumbleSingleton | Persistent humble singleton, basically a classic singleton but will destroy any other older components of the same type it finds on awake |
CMMPersistentSingleton | Persistent singleton. |
CMMPlatformActivation | Add this class to a gameobject, and it'll enable/disable it based on platform context, using conditional defintions to do so |
CMMPlaylist | Use this class to play audiosources (usually background music but feel free to use that for anything) in sequence, with optional crossfade between songs |
CMMPlaylistEditor | A custom editor that displays the current state of a playlist when the game is running |
CMMPlaylistPauseEvent | |
CMMPlaylistPlayEvent | This class stores all the info related to items in a playlist |
CMMPlaylistPlayIndexEvent | |
CMMPlaylistPlayNextEvent | |
CMMPlaylistPlayPreviousEvent | |
CMMPlaylistRemote | A class used to pilot a MMPlaylist |
CMMPlaylistSong | |
CMMPlaylistStopEvent | |
CMMPlotter | |
CMMPlotterAxis | |
CMMPlotterEditor | 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 |
CMMPlotterGenerator | |
CMMPoolableObject | 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). |
CMMPositionRecorder | 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 |
CMMPostProcessingMovingFilter | |
CMMPostProcessingMovingFilterEvent | An event used to move filters on and off a camera |
CMMPreventPassingThrough | Prevents fast moving objects from going through colliders by casting a ray backwards after each movement |
CMMPreventPassingThrough2D | Prevents fast moving objects from going through colliders by casting a ray backwards after each movement |
CMMPreventPassingThrough3D | Prevents fast moving objects from going through colliders by casting a ray backwards after each movement |
CMMProgressBar | 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 |
CMMProgressBarDemoAuto | |
CMMProperty | |
CMMPropertyEmitter | A class used to pick a property, and remap its value for emission/broadcast |
CMMPropertyEmitterDrawer | |
CMMPropertyLink | A class, meant to be extended, used to control a MMProperty and get/set its value |
CMMPropertyLinkBool | Bool property setter |
CMMPropertyLinkColor | Color property setter |
CMMPropertyLinkFloat | Float property setter |
CMMPropertyLinkInt | Int property setter |
CMMPropertyLinkQuaternion | Quaternion property setter |
CMMPropertyLinkString | String property setter |
CMMPropertyLinkVector2 | Vector2 property setter |
CMMPropertyLinkVector3 | Vector3 property setter |
CMMPropertyLinkVector4 | |
CMMPropertyPicker | A class used to pick a property on a target object / component / scriptable object |
CMMPropertyPickerDrawer | |
CMMPropertyReceiver | A class used to pick a property and modify its value |
CMMPropertyReceiverDrawer | |
CMMPSBToUIConverter | |
CMMRadialProgressBar | Add this class to a radial image and it'll allow you to control its fill amount This is a legacy class, and it's recommended to use MMProgressBar instead, it'll provide the same functionality (make sure you pick FillAmount as the FillMode) and much more options, such as delayed bars, events, bump, and more! |
CMMRadioBroadcaster | 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 |
CMMRadioLevelEvent | A struct event used to broadcast the level to channels |
CMMRadioReceiver | A class used to receive level values from a MMRadioBroadcaster, and apply it to (almost) any value on any object |
CMMRadioSignal | 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 |
CMMRadioSignalAudioAnalyzer | A class used to expose a beat level from a target MMAudioAnalyzer, to be broadcasted by a MMAudioBroadcaster |
CMMRadioSignalEditor | |
CMMRadioSignalGenerator | 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 |
CMMRadioSignalGeneratorEditor | |
CMMRadioSignalGeneratorItem | A class used to store generator items and their properties |
CMMRadioSignalGeneratorItemList | A reorderable list type used to store generator items |
CMMRadioSignalOnValueChange | |
CMMRagdoller | 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 |
CMMRagdollerIgnore | Add this class to objects you'd like to be unaffected by the MMRagdoller (like weapons for example) |
CMMRandomBoundsInstantiator | This class lets you randomly spawn objects within its bounds (defined by a 3D collider) |
CMMRandomInstantiator | 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 |
CMMRaycastTarget | Add this class to a UI object to have it act as a raycast target without needing an Image component |
CMMReadOnlyAttribute | |
CMMReadOnlyAttributeDrawer | |
CMMReadOnlyWhenPlayingAttribute | |
CMMRendererLayerEditor | |
CMMRendererSortingLayer | |
CMMReorderableArray | |
CMMReorderableAttributeAttribute | |
CMMReorderableList | |
CMMRequiresConstantRepaintAttribute | |
CMMRigidbodyCenterOfMass | Add this class to a Rigidbody or Rigidbody2D to be able to edit its center of mass from the inspector directly |
CMMRigidbodyInterface | 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. |
CMMRuntimeParticleControl | 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 |
CMMSaveLoadManagerEncrypter | This class implements methods to encrypt and decrypt streams |
CMMSaveLoadManagerMethodBinary | This save load method saves and loads files as binary files |
CMMSaveLoadManagerMethodBinaryEncrypted | This save load method saves and loads files as encrypted binary files |
CMMSaveLoadManagerMethodJson | |
CMMSaveLoadManagerMethodJsonEncrypted | |
CMMSaveLoadTester | A simple class used in the MMSaveLoadTestScene to test the MMSaveLoadManager class |
CMMSaveLoadTestObject | A test object to store data to test the MMSaveLoadManager class |
CMMScene | Scene management helpers |
CMMSceneLoadingAntiSpill | 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 |
CMMSceneLoadingImageProgress | A very simple class, meant to be used within a MMSceneLoading screen, to update the fill amount of an Image based on loading progress |
►CMMSceneLoadingManager | 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 |
CLoadingSceneEvent | |
CMMSceneLoadingTextProgress | A very simple class, meant to be used within a MMSceneLoading screen, to update a Text based on loading progress |
CMMSceneName | This component, when added on a Text component, will display the name of the level |
CMMSceneRestarter | This component lets you restart a scene by pressing a key |
CMMSceneViewIcon | Add this class to a gameobject and it'll display its name on the scene view, selected or not. |
CMMScreenshot | Add this class to an empty game object in your scene and it'll let you take screenshots (meant to be used in Editor) |
CMMScreenshotEditor | |
CMMSelectionBase | Add this component to an object and it'll always get selection in scene view, even if you select one of its children |
CMMSfxEvent | A struct used to trigger sounds |
CMMShufflebag | A class to use to get more controlled randomness, taking values out of the bag randomly, and never getting them again |
CMMSignal | This class lets you output the value corresponding to one of the basic signal types it contains. Useful to draw basic signal curves. |
CMMSimpleObjectPooler | A simple object pool outputting a single type of objects |
CMMSingleton | Singleton pattern. |
CMMSliderStep | Add this class to a UI slider and it'll let you trigger events when the cursor moves past a certain step |
CMMSoundManager | A simple yet powerful sound manager, that will let you play sounds with an event based approach and performance in mind |
CMMSoundManagerAllSoundsControlEvent | This event will let you pause/play/stop/free all sounds playing through the MMSoundManager at once |
CMMSoundManagerAudioPool | This class manages an object pool of audiosources |
CMMSoundManagerEvent | This event will let you trigger a save/load/reset on the MMSoundManager settings |
CMMSoundManagerPlayOptions | A class used to store options for MMSoundManager play |
CMMSoundManagerSettings | This class stores MMSoundManager settings and lets you tweak them from the MMSoundManagerSettingsSO's inspector |
CMMSoundManagerSettingsSO | A class to save sound settings (music on or off, sfx on or off) |
CMMSoundManagerSound | A simple struct used to store information about the sounds played by the MMSoundManager |
CMMSoundManagerSoundControlEvent | 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 |
CMMSoundManagerSoundFadeEvent | This event will let you pause |
CMMSoundManagerSoundPlayEvent | This event will let you play a sound on the MMSoundManager |
CMMSoundManagerTrackEvent | This feedback will let you mute, unmute, play, pause, stop, free or set the volume of a selected track |
CMMSoundManagerTrackFadeEvent | This event will let you order the MMSoundManager to fade an entire track's sounds' volume towards the specified FinalVolume |
CMMSpawnAroundProperties | 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 |
CMMSpawnAroundTester | A tester class used to show how the MMSpawnAround class can be used |
CMMSpeedTestItem | A struct to store data associated to speed tests |
CMMSquashAndStretch | 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 : |
CMMStateChangeEvent | |
CMMStateMachine | 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. |
CMMStayInPlace | This class forces a transform to stay at a fixed position, rotation and/or scale. |
CMMStopMotionAnimation | |
CMMSwipeEvent | An event usually triggered when a swipe happens. It contains the swipe "base" direction, and detailed information if needed (angle, length, origin and destination |
CMMSwipeZone | Add a swipe manager to your scene, and it'll trigger MMSwipeEvents everytime a swipe happens. From its inspector you can determine the minimal length of a swipe. Shorter swipes will be ignored |
CMMTilemap | A collection of helper methods for interacting with Tilemaps |
CMMTilemapBoolean | |
CMMTilemapCleaner | A super simple component you can add to a tilemap to get a button to clean it from all tiles |
CMMTilemapGenerator | This class will fill a tilemap with the data generated by the combination of its layers |
CMMTilemapGeneratorEditor | Custom editor for the MMTilemapGenerator, handles generate button and reorderable layers |
►CMMTilemapGeneratorLayer | A class used to store and edit the data of MMTilemapGenerator layers, which you can use and combine to generate unique and random grids |
CMMTilemapGeneratorLayerSafeSpot | A struct used to store safe spots dimensions |
CMMTilemapGeneratorLayerList | A class used to display a reoderable list of MMTilemapGeneratorLayers |
CMMTilemapGridRenderer | |
CMMTilemapShadow | 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 |
CMMTime | Time helpers |
CMMTimedActivation | Add this component to an object and it'll be auto destroyed X seconds after its Start() |
CMMTimedDestruction | Add this component to an object and it'll be auto destroyed X seconds after its Start() |
CMMToggleActive | 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 |
CMMTouchAxis | Add this component to a GUI Image to have it act as an axis. Bind pressed down, pressed continually and released actions to it from the inspector Handles mouse and multi touch |
CMMTouchButton | Add this component to a GUI Image to have it act as a button. Bind pressed down, pressed continually and released actions to it from the inspector Handles mouse and multi touch |
CMMTouchControls | |
CMMTouchDynamicJoystick | Add this component to a UI rectangle and it'll act as a detection zone for a joystick. Note that this component extends the MMTouchJoystick class so you don't need to add another joystick to it. It's both the detection zone and the stick itself. |
CMMTouchJoystick | Joystick input class. In charge of the behaviour of the joystick mobile touch input. Bind its actions from the inspector Handles mouse and multi touch |
CMMTouchRepositionableJoystick | Add this component to a UI rectangle and it'll act as a detection zone for a joystick. Note that this component extends the MMTouchJoystick class so you don't need to add another joystick to it. It's both the detection zone and the stick itself. |
CMMTrailRendererLayerEditor | |
CMMTrailRendererSortingLayer | |
CMMTransformRandomizer | Add this component to an object to randomize its position/rotation/scale on demand or automatically |
CMMTransformRandomizerEditor | Custom editor for the MMTransformRandomizer class |
CMMTriggerAndCollision | |
CMMTriggerAndCollisionEditor | |
CMMTween | The formulas described here are (loosely) based on Robert Penner's easing equations http://robertpenner.com/easing/ I recommend reading this blog post if you're interested in the subject : http://blog.moagrius.com/actionscript/jsas-understanding-easing/ |
CMMTweenDefinitions | |
CMMTweenType | |
CMMTweenTypeDrawer | |
CMMTwoSidedUI | 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 |
CMMVectorAttribute | |
CMMVectorLabelsAttributeDrawer | |
CMMViewportEdgeTeleporter | Add this class to an object and it will automatically teleport to the other end of the screen when reaching the screen's edges |
CMMVisibleParticle | Adds this class to particles to force their sorting layer |
CMonoAttribute | |
CObjectBoundsEditor | |
CPlatformBindings | A class used to store bindings |
CProgressEvent | |
CRagdollBodyPart | A class used to store ragdoll body parts informations |
CRatio | A class to store ratio display info |
CReorderableDrawer | |
CSceneViewIconEditor | This class adds names for each LevelMapPathElement next to it on the scene view, for easier setup |
CSelectionBase | Add this component to an object and it'll always get selection in scene view, even if you select one of its children |
CSerializedMMAchievement | A serializable class used to store an achievement into a save file |
CSerializedMMAchievementManager | Serializable MM achievement manager. |
CShaderController | 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 |
CShaderControllerEditor | Custom editor for the ShaderController, conditional hiding |
CSwipeEvent | |
CTransformController | A simple class used to control properties on a transform |