Corgi Engine  v9.2
MoreMountains.CorgiEngine Namespace Reference

Classes

class  AchievementRules
 This class describes how the Corgi Engine demo achievements are triggered. It extends the base class MMAchievementRules It listens for different event types More...
 
class  AIActionChangeWeapon
 This action is used to force your character to switch to another weapon. Just drag a weapon prefab into its NewWeapon slot and you're good to go. More...
 
class  AIActionClimbLadder
 This Action will let the AI agent you put it on climb ladders, up, down, or in any direction More...
 
class  AIActionCrouchStart
 This action will cause your AI character to start crouching More...
 
class  AIActionCrouchStop
 This action will cause your AI character to stop crouching More...
 
class  AIActionDash
 This action performs one dash. More...
 
class  AIActionDoNothing
 As the name implies, an action that does nothing. Just waits there. More...
 
class  AIActionFaceTarget
 An AIACtion used to have an AI face its AI Brain's Target More...
 
class  AIActionFlyPatrol
 This Action will make the Character fly until it hits a wall or a hole while following a path. More...
 
class  AIActionFlyTowardsTarget
 Requires a CharacterFly ability. Makes the character fly up to the specified MinimumDistance in the direction of the target. That's how the RetroGhosts move. More...
 
class  AIActionJump
 This action performs the defined number of jumps. Look below for a breakdown of how this class works. More...
 
class  AIActionMMFeedbacks
 This action is used to play a MMFeedbacks More...
 
class  AIActionMoveAwayFromTarget
 This action directs the CharacterHorizontalMovement ability to move away from the target. More...
 
class  AIActionMoveTowardsTarget
 This action directs the CharacterHorizontalMovement ability to move in the direction of the target. More...
 
class  AIActionPatrol
 This Action will make the Character patrols until it (optionally) hits a wall or a hole. More...
 
class  AIActionPatrolWithinBounds
 Inherits from AIActionPatrol but also lets you define left and right bounds that the character can't exceed. More...
 
class  AIActionReload
 An AIACtion used to request a reload on the weapon More...
 
class  AIActionResetTarget
 An Action that will set the target to null, resetting it More...
 
class  AIActionRunStart
 This action will cause your AI character to start running More...
 
class  AIActionRunStop
 This action will cause your AI character to stop running More...
 
class  AIActionSelfDestruct
 An AIACtion used to have an AI kill itself More...
 
class  AIActionSetLastKnownPositionAsTarget
 An Action that will set the last known position of the target as the new Target More...
 
class  AIActionSetPlayerAsTarget
 An AIACtion used to set the current Player character as the target More...
 
class  AIActionSetTransformAsTarget
 An AIACtion used to set a specified Transform as the target More...
 
class  AIActionShoot
 An Action that shoots using the currently equipped weapon. If your weapon is in auto mode, will shoot until you exit the state, and will only shoot once in SemiAuto mode. You can optionnally have the character face (left/right) the target, and aim at it (if the weapon has a WeaponAim component). More...
 
class  AIActionSwapBrain
 This simple action lets you swap the brain of an AI at runtime, for a new brain, specified in the inspector More...
 
class  AIActionUnityEvents
 This action is used to trigger a UnityEvent More...
 
class  AIDecisionDetectTargetLine
 This Decision will return true if any object on its TargetLayer layermask enters its line of sight. It will also set the Brain's Target to that object. You can choose to have it in ray mode, in which case its line of sight will be an actual line (a raycast), or have it be wider (in which case it'll use a spherecast). You can also specify an offset for the ray's origin, and an obstacle layer mask that will block it. More...
 
class  AIDecisionDetectTargetRadius
 This decision will return true if an object on its TargetLayer layermask is within its specified radius, false otherwise. It will also set the Brain's Target to that object. More...
 
class  AIDecisionDistanceToTarget
 This Decision will return true if the current Brain's Target is within the specified range, false otherwise. More...
 
class  AIDecisionGrounded
 This decision will return true if the character is grounded, false otherwise. More...
 
class  AIDecisionHealth
 This decision will return true if the specified Health conditions are met. You can have it be lower, strictly lower, equal, higher or strictly higher than the specified value. More...
 
class  AIDecisionHit
 This decision returns true if the Character got hit this frame, or after the specified number of hits has been reached. More...
 
class  AIDecisionLineOfSightToTarget
 Use this decision to make sure there is an unobstructed line of sight between this AI and its current target More...
 
class  AIDecisionNextFrame
 This decision will return true when entering the state this Decision is on. More...
 
class  AIDecisionRandom
 This decision will roll a dice and return true if the result is below or equal the Odds value More...
 
class  AIDecisionReloadNeeded
 This Decision will return true if a reload is needed More...
 
class  AIDecisionTargetFacingAI
 This decision will return true if the Brain's current target is facing this character. Yes, it's quite specific to Ghosts. But hey now you can use it too! More...
 
class  AIDecisionTargetIsAlive
 This decision will return true if the Brain's current target is alive More...
 
class  AIDecisionTargetIsNull
 This decision will return true if the Brain's current target is null, false otherwise More...
 
class  AIDecisionTimeInState
 This decision will return true after the specified duration, picked randomly between the min and max values (in seconds) has passed since the Brain has been in the state this decision is in. Use it to do something X seconds after having done something else. More...
 
class  AIDecisionTimeSinceStart
 This decision will return true after the specified duration (in seconds) has passed since the level was loaded. More...
 
class  AIFollow
 Add this script to a CharacterBehavior+CorgiController2D object to make it follow (or try to follow) Player1 So far the Follower will move horizontally towards the player, and use a jetpack to reach it, or jump above obstacles. More...
 
class  AimMarker
 A class used to handle aim markers, (usually circular) visual elements More...
 
class  AIShootOnSight
 Add this component to a CorgiController2D and it will try to kill your player on sight. More...
 
class  AIStairsRandomizer
 This class is only meant to be used in the MinimalStairs demo scene In it, a blue RectangleAI character will move (semi) randomly on the stairs there As you can see below, it's a very basic AI, that will randomly decide to go up or down every once in a while More...
 
class  AIWalk
 Add this component to a CorgiController2D and it will walk, turn back when it hits a wall, and try and avoid holes if you ask it to. More...
 
class  AmmoDisplay
 A class that combines a progress bar and a text display and that can be used to display the current ammo level of a weapon More...
 
class  AnyHeightOneWayPlatform
 Add this component to a one way platform (a platform with an edge collider, on the OneWayPlatforms layer) and it will automatically turn its collider on or off based on the player position, letting you easily move it around, and will also let the player collide with it laterally, like a mid height one way platform would, but regardless of its placement or rotation. It's slightly more costly than a regular, static one, but will offer more options too More...
 
class  AppearDisappear
 Add this class to an object (usually a platform but it could be anything really) to have it run on an appearing/disappearing loop, like the appearing platforms in Megaman for example. More...
 
class  AutoMovementControlZone
 This zone lets you impact a Character equipped with an AutoMovement ability You'll be able to use it to change its direction, stop it in its tracks, or make it start/stop running More...
 
class  AutoRespawn
 Add this script to an object and it will automatically be reactivated and revived when the player respawns. More...
 
class  BackgroundMusic
 Add this class to a GameObject to have it play a background music when instanciated. Careful : only one background music will be played at a time. More...
 
class  BackgroundTree
 Add this script to a tree to make it dance slowly over time More...
 
class  Bomb
 A class used to trigger a damage area zone of the selected shape (rectangle or circle) after the defined time before explosion. Typically used for grenades. More...
 
class  BonusBlock
 Add this class to a block and it'll behave like these Super Mario blocks that spawn something when hit from below More...
 
class  BouncyProjectile
 Projectile class that will bounce off walls instead of exploding on impact More...
 
class  ButtonActivated
 Extend this class to activate something when a button is pressed in a certain zone More...
 
class  ButtonActivator
 Add this class to an object and it'll be able to activate ButtonActivatedZones when entering them More...
 
class  ButtonPrompt
 
class  CameraController
 The Corgi Engine's Camera Controller. Handles camera movement, shakes, player follow. More...
 
class  Character
 This class will pilot the CorgiController component of your character. This is where you'll implement all of your character's game rules, like jump, dash, shoot, stuff like that. Animator parameters : Grounded (bool), xSpeed (float), ySpeed (float), CollidingLeft (bool), CollidingRight (bool), CollidingBelow (bool), CollidingAbove (bool), Idle (bool) Random : a random float between 0 and 1, updated every frame, useful to add variance to your state entry transitions for example RandomConstant : a random int (between 0 and 1000), generated at Start and that'll remain constant for the entire lifetime of this animator, useful to have different characters of the same type behave differently More...
 
class  CharacterAbility
 A class meant to be overridden that handles a character's ability. More...
 
class  CharacterAbilityInspector
 Adds custom labels to the Character inspector More...
 
class  CharacterAbilityNodeSwap
 This ability lets you swap entire ability nodes for the ones set in parameters More...
 
struct  CharacterAbilityTypePair
 
class  CharacterAnimationParametersInitializer
 
class  CharacterAutoMovement
 This ability will make your character move automatically, without having to touch the left or right inputs More...
 
class  CharacterBounce
 Add this ability to a character and it'll bounce up every time it hits the ground More...
 
class  CharacterButtonActivation
 Add this component to a character and it'll be able to interact with button activated zones and objects Animator parameters : Activating (bool) More...
 
class  CharacterCrouch
 Add this component to a character and it'll be able to crouch and crawl Animator parameters : Crouching, Crawling More...
 
class  CharacterCrushDetection
 This ability will apply damage or cause the death of the character when crushed. Getting crushed happens when your character is colliding on one direction, and being crushed by anything on the CrusherLayers from the opposite direction. So a character that is standing on a platform and gets a falling platform on its head is getting crushed. More...
 
class  CharacterDamageDash
 Add this class on a character and it'll be able to dash just like the regular dash, and apply damage to everything its DamageOnTouch zone touches More...
 
class  CharacterDangling
 Add this class to a character and it'll adopt a dangling stance if facing a hole in the ground Animator parameters : Dangling More...
 
class  CharacterDash
 Add this class to a character and it'll be able to perform a horizontal dash Animator parameters : Dashing More...
 
class  CharacterDetector
 Add this class to a TRIGGER collider2D and it'll let you know when a character enters it and will let you trigger actions in consequence More...
 
class  CharacterDive
 
class  CharacterFallDamage
 This component will apply damage to the character if it falls from a height higher than the specified MinimumDamageFallHeight How much damage that is will be remapped between the specified min and max damage values. Animation parameter : FallDamage, bool, true the frame the character takes fall damage More...
 
class  CharacterFly
 This component allows your character to fly by moving gravity-free on both x and y axis. Here you can define the flight speed, as well as whether or not the character is always flying (in which case you don't have to press a button to fly). Important note : slope ceilings are not supported for now. More...
 
class  CharacterFollowPath
 Probably more suited for an AI character than a Player character, this ability allows the Character to follow a path, as defined in the linked MMPathMovement component More...
 
class  CharacterGlide
 Add this ability to a Character and it'll be able to glide through the air, slowing its fall when pressing the Glide button (by default the same binding as the Jump button, but separated for convenience) More...
 
class  CharacterGrabCarryAndThrow
 This class lets you grab, carry and throw objects with a GrabCarryAndThrowObject component. More...
 
class  CharacterGravity
 Add this class to a character and it'll be able to have a different gravity than the default one, and will be able to change it via Gravity Zones and Gravity Points Animator parameters : none More...
 
class  CharacterGrip
 Add this component to a character and it'll be able to grip level elements that have the Grip component Animator parameters : Gripping (bool) More...
 
class  CharacterGroundNormalGravity
 Add this ability to a Character with a CharacterGravity ability, and it will automatically compute the current slope's angle and change the gravity's direction to match the slope normal This is an experimental ability, results may vary depending on speed and layout, it will likely be bouncy More...
 
class  CharacterHandleSecondaryWeapon
 Add this class to a character so it can use weapons Note that this component will trigger animations (if their parameter is present in the Animator), based on the current weapon's Animations Animator parameters : defined from the Weapon's inspector More...
 
class  CharacterHandleWeapon
 Add this class to a character so it can use weapons Note that this component will trigger animations (if their parameter is present in the Animator), based on the current weapon's Animations Animator parameters : defined from the Weapon's inspector More...
 
class  CharacterHorizontalMovement
 Add this ability to a Character to have it handle horizontal movement (walk, and potentially run, crawl, etc) Animator parameters : Speed (float), Walking (bool) More...
 
class  CharacterHorizontalMovementOverride
 Add this component to a trigger zone, and it'll override the CharacterHorizontalMovement settings for all characters that cross it More...
 
class  CharacterInspector
 Adds custom labels to the Character inspector More...
 
class  CharacterInventory
 Add this component to a character and it'll be able to control an inventory Animator parameters : none Note that its start feedback will play on weapon change More...
 
class  CharacterJetpack
 Add this component to a character and it'll be able to jetpack Animator parameters : Jetpacking (bool) More...
 
class  CharacterJump
 Add this class to a character and it'll be able to jump Animator parameters : Jumping (bool), DoubleJumping (bool), HitTheGround (bool) More...
 
class  CharacterJumpOverride
 Add this component to a trigger zone, and it'll override the CharacterJump settings for all characters that cross it More...
 
class  CharacterLadder
 Add this component to a Character and it'll be able to go up and down ladders. Animator parameters : LadderClimbing (bool), LadderClimbingSpeed (float) More...
 
class  CharacterLedgeHang
 Add this component to a character and it'll be able to hang from ledges and climb up Animator parameters : LedgeHanging, LedgeClimbing More...
 
class  CharacterLevelBounds
 This class handles what happens when the player reaches the level bounds. For each bound (above, below, left, right), you can define if the player will be killed, or if its movement will be constrained, or if nothing happens More...
 
class  CharacterLookUp
 Add this component to a character and it'll be able to look up Animator parameters : LookingUp More...
 
class  CharacterParticles
 Add this component to a Character and bind ParticleSystems to it to have it emit particles when certain states are active. You can have a look at the RetroCorgi demo character for examples of how to use it. More...
 
class  CharacterPause
 Add this component to a character and it'll be able to activate/desactivate the pause More...
 
class  CharacterPersistence
 Add this component to a Character and it'll persist with its exact current state when transitioning to a new scene. It'll be automatically passed to the new scene's LevelManager to be used as this scene's main character. It'll keep the exact state all its components are in at the moment they finish the level. Its health, enabled abilities, component values, equipped weapons, new components you may have added, etc, will all remain once in the new scene. Animator parameters : None More...
 
class  CharacterPush
 
class  CharacterPushCorgiController
 
class  CharacterRestartLevel
 Add this component to a character and you'll be able to restart the level at the press of a button, either killing the player, transitioning to another scene, or teleporting to the initial, last, or current checkpoint More...
 
class  CharacterRoll
 Add this class to a character and it'll be able to "roll" along surfaces, with options to go through enemies, and keep controlling direction Animator parameters : Rolling, StartedRolling More...
 
class  CharacterRun
 Add this component to a character and it'll be able to run Animator parameters : Running More...
 
class  CharacterSelector
 Add this component to a button (for example) to be able to store a selected character, and optionally to go to another scene You can see an example of its use in the RetroAdventureCharacterSelection demo scene More...
 
class  CharacterSimpleDive
 
class  CharacterSlopeOrientation
 Add this component to a Character and it'll rotate according to the current slope angle. Animator parameters : none More...
 
class  CharacterSpeed
 Add this ability to a Character and you'll be able to define speed modifiers for each of its possible states This modifier will be applied to the horizontal speed of the character as long as the character is in that state You can also define a default speed multiplier to apply if none of the defined states were found Animator parameters : none More...
 
class  CharacterSpeedAnalysis
 Add this ability to a character and it'll compute and expose various speeds at runtime It doesn't serve any purpose on its own, and is provided more as an example of how you can create abilities to analyze and extract data from gameplay, at runtime These exposed values could then be used by other abilities, for example More...
 
class  CharacterSpeedState
 A class used to store possible speeds for any state you need More...
 
class  CharacterStairs
 Add this ability to a character and it'll be able to climb stairs Animation parameter : OnStairs, boolean More...
 
class  CharacterStates
 The various states you can use to check if your character is doing something at the current frame by Renaud Forestié More...
 
class  CharacterStun
 Add this component to a character and it'll be able to be stunned. To stun a character, simply call its Stun or StunFor methods. You'll find test buttons at the bottom of this component's inspector. You can also use StunZones to stun your characters. Animator parameters : Stunned (bool) More...
 
class  CharacterSurfaceFeedbacks
 Add this component to a character and it'll let you define a number of surfaces and associate walk and run feedbacks to them It will also let you trigger events when entering or exiting these surfaces Important : Surfaces are evaluated from top to bottom. The first surface definition that matches the current detected ground will be considered the current surface. So make sure your order them accordingly. More...
 
class  CharacterSwap
 Add this ability to a Character and it'll be part of a pool of characters in a scene to swap from. You'll need a CharacterSwapManager in your scene for this to work. More...
 
class  CharacterSwapManager
 Add this class to an empty component in your scene, and it'll allow you to swap characters in your scene when pressing the SwapButton (P, by default) Each character in your scene will need to have a CharacterSwap class on it, and the corresponding PlayerID. You can see an example of such a setup in the MinimalCharacterSwap demo scene More...
 
class  CharacterSwim
 Add this ability to a Character to allow it to swim in Water by pressing the Swim button (by default the same binding as the Jump button, but separated for convenience) More...
 
class  CharacterSwitchManager
 Add this component to an empty object in your scene, and when you'll press the SwitchCharacter button (P by default, change that in Unity's InputManager settings), your main character will be replaced by one of the prefabs in the list set on this component. You can decide the order (sequential or random), and have as many as you want. Note that this will change the whole prefab, not just the visuals. If you're just after a visual change, look at the CharacterSwitchModel ability. If you want to swap characters between a bunch of characters within a scene, look at the CharacterSwap ability and CharacterSwapManager More...
 
class  CharacterSwitchModel
 Add this component to a character and it'll be able to switch its model when pressing the SwitchCharacter button Note that this will only change the model, not the prefab. Only the visual representation, not the abilities and settings. If instead you'd like to change the prefab entirely, look at the CharacterSwitchManager class. If you want to swap characters between a bunch of characters within a scene, look at the CharacterSwap ability and CharacterSwapManager More...
 
class  CharacterTimeControl
 Add this class to a character and it'll be able to slow down time when pressing down the TimeControl button More...
 
class  CharacterWallClinging
 Add this component to a Character and it'll be able to cling to walls when being in the air,
More...
 
class  CharacterWalljump
 Add this component to a Character and it'll be able to walljump Animator parameters : WallJumping (bool) More...
 
class  ChargeWeapon
 Add this component to an object and it'll let you define a sequence of charge steps, each triggering their own unique weapon, complete with options like input modes or conditional releases, hooks for every steps, and more. Useful for Megaman or Zelda like types of charge weapons. More...
 
class  ChargeWeaponStep
 A class used to store the charge properties of the weapons that together make up a charge weapon Each charge weapon is made of multiple of these, each representing a step in the charge sequence More...
 
class  CheckPoint
 Checkpoint class. Will make the player respawn at this point if it dies. More...
 
class  CinemachineAxisLocker
 This CinemachineExtension allows you to lock a Cinemachine on one or more axis More...
 
class  CinemachineBrainController
 This class is designed to control CinemachineBrains, letting you control their default blend values via events from any class More...
 
class  CinemachineCameraController
 A class that handles camera follow for Cinemachine powered cameras More...
 
class  Coin
 Coin manager More...
 
class  ComboWeapon
 Add this component to an object containing multiple weapons and it'll turn it into a ComboWeapon, allowing you to chain attacks from all the different weapons More...
 
struct  ControlsModeEvent
 
class  CorgiCinemachineZone
 Add this class to a box collider 2D and it'll let you define a zone that, when entered, enables a virtual camera, letting you define sections inside your level easily More...
 
class  CorgiController
 The character controller that handles the character's gravity and collisions. It requires a Collider2D and a rigidbody to function. More...
 
class  CorgiControllerInspector
 Adds custom labels to the CorgiController inspector More...
 
class  CorgiControllerParameters
 Parameters for the Corgi Controller class. This is where you define your slope limit, gravity, and speed dampening factors More...
 
class  CorgiControllerPhysicsVolume2D
 Add this class to an area (water for example) and it will pass its parameters to any character that gets into it. More...
 
class  CorgiControllerState
 The various states you can use to check if your character is doing something at the current frame More...
 
struct  CorgiEngineCharacterAnimationParameter
 A struct used to store character animation parameter definitions, to be used by the CharacterAnimationParametersInitializer class More...
 
struct  CorgiEngineEvent
 A type of events used to signal level start and end (for now) More...
 
class  CorgiEngineInputActions
 
struct  CorgiEnginePointsEvent
 A type of event used to signal changes to the current score More...
 
struct  CorgiEngineStarEvent
 
class  CorgiMonoBehaviour
 The CorgiMonoBehaviour class is a base class for all Corgi Engine classes. It doesn't do anything, but ensures you have a single point of change should you want your classes to inherit from something else than a plain MonoBehaviour A frequent use case for this would be adding a network layer More...
 
class  DamageOnTouch
 Add this component to an object and it will cause damage to objects that collide with it. More...
 
class  DamageOverTimeInterrupter
 Use this picker to interrupt all damage of the specified type on the character that picks it More...
 
class  DamageResistance
 Used by the DamageResistanceProcessor, this class defines the resistance versus a certain type of damage. More...
 
class  DamageResistanceProcessor
 Link this component to a Health component, and it'll be able to process incoming damage through resistances, handling damage reduction/increase, condition changes, movement multipliers, feedbacks and more. More...
 
class  DamageType
 A scriptable object you can create assets from, to identify damage types More...
 
class  DependencyInstaller
 
class  DialogueBox
 Dialogue box class. Don't add this directly to your game, look at DialogueZone instead. More...
 
class  DialogueZone
 Add this class to an empty component. It will automatically add a boxcollider2d, set it to "is trigger". Then customize the dialogue zone through the inspector. More...
 
class  FallingPlatform
 Add this script to a platform and it'll fall down when walked upon by a playable character Add an AutoRespawn component to your platform and it'll get reset when your character dies More...
 
class  FinishLevel
 Add this class to a trigger and it will send your player to the next level More...
 
class  ForceZone
 Add this zone to a trigger collider 2D and it'll let you apply the specified force to any Corgi Controller that enters it More...
 
class  GameManager
 The game manager is a persistent singleton that handles points and time More...
 
class  GoToLevelEntryPoint
 A class used to go from one level to the next while specifying an entry point in the target level. Entry points are defined in each level's LevelManager component. They're simply Transforms in a list. The index in the list is the identifier for the entry point. More...
 
class  GrabCarryAndThrowObject
 Add this component to an object and it'll become carryable by a Character with the appropriate ability (CharacterGrabCarryAndThrow) More...
 
class  GravityPoint
 Add this component to an object and it'll impact graviy able characters within its DistanceOfEffect More...
 
class  GravityZone
 Add this component to an object with a trigger 2D collider and it'll act as a gravity zone, modifying the gravity for all Characters entering it, providing they have the CharacterGravity ability More...
 
class  Grip
 Add this component to an object with a 2D collider and it'll be grippable by any Character equipped with a CharacterGrip More...
 
class  GUIManager
 Handles all GUI effects and changes More...
 
class  Health
 This class manages the health of an object, pilots its potential health bar, handles what happens when it takes damage, and what happens when it dies. More...
 
class  HealthAutoRefill
 Add this class to a character or object with a Health class, and its health will auto refill based on the settings here More...
 
struct  HealthChangeEvent
 An event triggered every time health values change, for other classes to listen to More...
 
struct  HealthDeathEvent
 
class  HeartsGUI
 Add this class to a GUI object, and it'll handle the instantiation and management of hearts based on the current lives of the player character It's best used on a HorizontalLayoutGroup that will handle correct positioning natively More...
 
class  HipsterGUI
 A simple class that disables the avatar on start More...
 
class  HitscanWeapon
 
class  Hittable
 A class you can put on objects to trigger events when they get hit (whether that hit applied damage or not). Useful for switches and the likes. More...
 
class  InputManager
 This persistent singleton handles the inputs and sends commands to the player. IMPORTANT : this script's Execution Order MUST be -100. You can define a script's execution order by clicking on the script's file and then clicking on the Execution Order button at the bottom right of the script's inspector. See https://docs.unity3d.com/Manual/class-ScriptExecution.html for more details More...
 
class  InputSystemManager
 This is a replacement InputManager if you prefer using Unity's InputSystem over the legacy one. Note that it's not the default solution in the engine at the moment, because older versions of Unity don't support it, and most people still prefer not using it You can see an example of how to set it up in the MinimalLevel_InputSystem demo scene More...
 
class  InputSystemManagerEventsBased
 This is a replacement InputManager if you prefer using Unity's InputSystem over the legacy one, in a multiplayer context. It requires to be put on an (ideally empty) game object, accompanied by a PlayerInput component, with Actions bound, and Behavior set to SendMessages Note that it's not the default solution in the engine at the moment, because older versions of Unity don't support it, and most people still prefer not using it You can see an example of how to set it up in the MinimalLevel_InputSystem_Multiplayer demo scene More...
 
class  InventoryEngineChest
 Add this component to an object in your scene to have it act like a chest. You'll need a key operated zone to open it, and item picker(s) on it to fill its contents More...
 
class  InventoryEngineHealth
 Pickable health item More...
 
class  InventoryEngineKey
 Pickable key item More...
 
class  InventoryEnginePoints
 Pickable health item More...
 
class  InventoryEngineTimeModifier
 Pickable health item More...
 
class  InventoryEngineWeapon
 Weapon item in the Corgi Engine More...
 
class  InventoryPickableItem
 
class  Jumper
 Add this class to a platform to make it a jumping platform, a trampoline or whatever. It will automatically push any character that touches it up in the air. More...
 
class  KeyOperatedZone
 Add this component to a collider 2D and you'll be able to have it perform an action when a character equipped with the specified key enters it. More...
 
class  KillPlayerOnTouch
 Add this to a GameObject with a Collider2D set to Trigger to have it kill the player on touch. More...
 
class  KillsManager
 
class  Ladder
 Adds this class to your ladders so a Character can climb them. More...
 
class  LayerManager
 A simple static class that keeps track of layer names, holds ready to use layermasks for most common layers and layermasks combinations Of course if you happen to change the layer order or numbers, you'll want to udpate this class. More...
 
class  Ledge
 Add this component to an object and it'll be able to be grabbed by characters equipped with a CharacterLedgeHang ability More...
 
struct  LedgeEvent
 An event used to let characters know that they may have connected with a ledge More...
 
class  LevelBackground
 Add this class to a background image so it will act as your level's background More...
 
class  LevelManager
 Spawns the player, handles checkpoints and respawn More...
 
class  LevelManagerEditor
 Adds custom labels to the CorgiController inspector More...
 
class  LevelMapCharacter
 A controller for the level map's main character More...
 
class  LevelMapPathElement
 A component to add on level maps path points More...
 
class  LevelMapPathElementEditor
 This class adds names for each LevelMapPathElement next to it on the scene view, for easier setup More...
 
struct  LevelNameEvent
 
class  LevelRestarter
 Add this class to a trigger to cause the level to restart when the player hits the trigger More...
 
class  LevelSelector
 This component allows the definition of a level that can then be accessed and loaded. Used mostly in the level map scene. More...
 
class  LevelSelectorGUI
 Level selector GUI. More...
 
class  Loot
 A class meant to spawn objects (usually item pickers, but not necessarily) The spawn can be triggered by any script, at any time, and comes with automatic hooks to trigger loot on damage or death More...
 
class  Magnetic
 
class  MagneticEnabler
 This object will enable Magnetic objects in your scene when they enter its associated collider2D (make sure you add one). While magnetic objects can work on their own, and handle their own range detection, you can also use a different architecture, where an enabler makes them move. A typical use case would be to add it to a character, nested under its top level : More...
 
class  MeleeWeapon
 A basic melee weapon class, that will activate a "hurt zone" when the weapon is used More...
 
struct  MMCameraEvent
 An event used to interact with cameras More...
 
struct  MMCharacterEvent
 MMCharacterEvents are used in addition to the events triggered by the character's state machine, to signal stuff happening that is not necessarily linked to a change of state More...
 
struct  MMCinemachineBrainEvent
 An event used to interact with camera brains More...
 
struct  MMDamageTakenEvent
 An event fired when something takes damage 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  MMF_CorgiEngineEvent
 This feedback lets you trigger Corgi Engine Events, that can then be caught by other classes More...
 
class  MMF_CorgiEngineFloatingText
 This feedback lets you trigger the appearance of a floating text, that will reflect the damage done to the target Health component. This requires that a MMFloatingTextSpawner be correctly setup in the scene, otherwise nothing will happen. To do so, create a new empty object, add a MMFloatingTextSpawner to it. Drag (at least) one MMFloatingText prefab into its PooledSimpleMMFloatingText slot. You'll find such prefabs already made in the MMTools/Tools/MMFloatingText/Prefabs folder, but feel free to create your own. More...
 
class  MMF_CorgiEngineSound
 
struct  MMLifeCycleEvent
 
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  MoreMountainsMenu
 Adds items to the More Mountains menu More...
 
class  MovingPlatform
 Add this component to a platform and it'll be able to follow a path and carry a character More...
 
class  MovingPlatformFree
 
class  MovingPlatformFreeInspector
 Adds custom labels to the CorgiController inspector More...
 
class  MultiplayerCameraController
 Add this script to an orthographic or perspective camera, and it'll try and follow all Character players registered in the LevelManager, and keep them all in the screen. More...
 
class  MultiplayerGUIManager
 Handles all GUI effects and changes for Multiplayer scenes More...
 
class  MultiplayerLevelManager
 Spawns the players and handles end game More...
 
class  Mushroom
 Add this class to an object and it'll double the size of a character behavior if it touches one More...
 
class  MusicSwitch
 
class  OneWayLevelManager
 
class  ParallaxCamera
 Add this class to a camera to have it support parallax layers More...
 
class  ParallaxElement
 Add this to a GameObject to have it move in parallax More...
 
class  PathedProjectile
 This class handles the movement of a pathed projectile More...
 
class  PathedProjectileSpawner
 Spawns pathed projectiles More...
 
class  PauseButton
 A simple component meant to be added to the pause button More...
 
class  PickableAbility
 Add this class to an object with a trigger box collider 2D, and it'll become a pickable object, able to permit or forbid an ability on a Character More...
 
class  PickableAbilityInspector
 
class  PickableAction
 Add this class to an object and it'll trigger the specified actions on pick More...
 
class  PickableDamageResistance
 Use this picker to create a new resistance on the character that picks it, or to enable/disable an existing one More...
 
class  PickableItem
 Coin manager More...
 
struct  PickableItemEvent
 An event typically fired when picking an item, letting listeners know what item has been picked More...
 
class  PickableJetpack
 This component lets you permit the jetpack ability when picked More...
 
class  PickableOneUp
 A pickable one up, that gives you one extra life if picked up More...
 
class  PickableWeapon
 Add this class to a collectible to have the player change weapon when collecting it More...
 
struct  PointOfEntry
 A struct to describe and store points of entry More...
 
class  PointsOfEntryStorage
 
class  Progress
 A serializable entity used to store progress : a list of scenes with their internal status (see above), how many lives are left, and how much we can have More...
 
class  Projectile
 A class used to describe the behaviour of a projectile, usually spawned by a ProjectileWeapon More...
 
class  ProjectileWeapon
 A weapon class aimed specifically at allowing the creation of various projectile weapons, from shotgun to machine gun, via plasma gun or rocket launcher More...
 
class  ProximityManaged
 A class to add to any object in your scene to mark it as managed by a proximity manager. More...
 
class  ProximityManager
 A class that looks for objects with a ProximityManaged class on them, and enables/disables them based on their settings. This class is meant as an example of how you can deal with large scenes with a lot of objects, disabling the ones that are far away from the action to save on performance. Note that there are many ways to do it, this one is simple and generic, there may be better choices for your specific use case. More...
 
class  ProximityMine
 Add this class to a collider (2D or 3D) and it'll let you trigger things after a duration, like a mine would. It also comes with options to interrupt or reset the timer on exit. More...
 
class  Pushable
 A class needed on pushable objects if you want your character to be able to detect them More...
 
class  Pusher
 If you plan on having moving platforms push your playable character, you'll want to use a Pusher in addition to it Typically you'll want to parent a pusher to the platform, and bind it to the Pusher's inspector. You can see an example of it in use in the MinimalMovingPlatforms demo scene More...
 
class  RandomSprite
 This component will randomize the object's sprite renderer's sprite out of a collection More...
 
interface  Respawnable
 Interface for player respawn More...
 
class  RetroAdventureFinishLevel
 A Retro adventure dedicated class that will load the next level More...
 
class  RetroAdventureGUIManager
 This class handles the GUI in the action phases of the Retro Adventure levels More...
 
class  RetroAdventureLevel
 A class to handle the display of retro adventure levels in the retro adventure level selector More...
 
class  RetroAdventureProgressManager
 The RetroAdventureProgressManager class acts as an example of how you can implement progress in your game. There's no general class for that in the engine, for the simple reason that no two games will want to save the exact same things. But this should show you how it's done, and you can then copy and paste that into your own class (or extend this one, whatever you prefer). More...
 
class  RetroAdventureProgressManagerMenu
 
class  RetroAdventureScene
 A serializable entity to store retro adventure scenes, whether they've been completed, unlocked, how many stars were collected, and which ones More...
 
class  RetroCopter
 This class handles the rotation of the RetroCopter's model based on its current speed More...
 
class  RetroDoor
 A class designed to handle the automatic coloration of door parts in the Retro demo scenes More...
 
class  RetroNextLevel
 A class with a simple method to load the next level More...
 
class  RetroStar
 A pickable star, that triggers an event if picked, and disables itself if it's been previously collected More...
 
class  Room
 This class lets you define the boundaries of rooms in your level. Rooms are useful if you want to cut your level into portions (think Super Metroid or Hollow Knight for example). These rooms will require their own virtual camera, and a confiner to define their size. Note that the confiner is different from the collider that defines the room. You can see an example of rooms in action in the RetroVania demo scene. More...
 
class  RoomEditor
 Custom editor for Rooms that draws their name in scene view More...
 
class  SaveResetButton
 
class  SfxSwitch
 
class  SoundManager
 This persistent singleton handles sound playing More...
 
class  SoundSettings
 A class used to store sound settings More...
 
class  Star
 A pickable star, that triggers a CorgiEngineStarEvent if picked It's up to you to implement something that will handle that event. You can look at the RetroStar and RetroAdventureProgressManager for examples of that. More...
 
class  StartScreen
 Simple start screen class. More...
 
class  Stimpack
 Gives health to the player who collects it More...
 
class  Stompable
 Add this class to an enemy (or whatever you want), to be able to stomp on it More...
 
class  StunZone
 A stun zone will stun any character with a CharacterStun ability entering it More...
 
class  SuperHipsterBrosHealth
 Manages the health of the SuperHipsterBros character More...
 
class  SurfaceCrawler
 
class  SurfaceModifier
 Add this component to a platform and define its new friction or force which will be applied to any CorgiController that walks on it More...
 
class  SurfaceModifierTarget
 A struct used to store targets for the SurfaceModifier class More...
 
class  Teleporter
 Add this script to a trigger collider2D to teleport objects from that object to its destination More...
 
class  TeleporterEditor
 Custom editor for Teleporters that draws their name in scene view More...
 
class  ThrownObject
 A class used to create physics based projectiles, meant to be thrown like grenades More...
 
class  TilemapLevelGenerator
 This component, added on an empty object in your level will handle the generation of a unique and randomized tilemap More...
 
class  TimedSpawner
 A class meant to be used in conjunction with an object pool (simple or multiple) to spawn objects regularly, at a frequency randomly chosen between the min and max values set in its inspector More...
 
class  TimeModifier
 Add this to an item to make it modify time when it gets picked up by a Character More...
 
class  TimeZone
 Add this class to a trigger and it will allow you to modify the time scale when entering it, for the specified duration and settings More...
 
class  TypedDamage
 A class used to store and define typed damage impact : damage caused, condition or movement speed changes, etc More...
 
class  UncheckReverseGravityInput
 Adding this script to a trigger, volume box collider2D will make sure that any character that enters it with a CharacterGravity ability on itself will have its "reverse input when upside down" property set to false. This was created for the purposes of the FeaturesGravity demo but feel free to use it in your game if needed. More...
 
class  WallClingingOverride
 Use this class on any platform or surface a Character could usually wallcling to. You'll be able to override the slow factor (close to 0 : very slow fall, 1 : normal fall, larger than 1 : faster fall than normal). More...
 
class  Water
 Add this class to a body of water. It will handle splash effects on entering/exiting, and allow the player to jump out of it. More...
 
class  Weapon
 This base class, meant to be extended (see ProjectileWeapon.cs for an example of that) handles rate of fire (rate of use actually), and ammo reloading More...
 
class  WeaponAim
 Add this component to a Weapon and you'll be able to aim it (meaning you'll rotate it) Supported control modes are mouse, primary movement (you aim wherever you direct your character) and secondary movement (using a secondary axis, separate from the movement). More...
 
class  WeaponAmmo
 
class  WeaponAutoAim
 This component will let you setup your weapon so that it auto aims at targets on the specified layer mask, within the specified radius, and with a line of sight. When a target is found, the weapon will swap its default aim mode to Script, until no more target is found. It's important to have a base aim mode to revert to, such as PrimaryMovement More...
 
class  WeaponEditor
 Adds weapon state display to the Weapons inspector More...
 
class  WeaponHandler
 A simple component you can use to control a weapon and have it start and stop on demand, without having a character to handle it You can see it in action in the KoalaHealth demo scene, it's powering that demo's cannons More...
 
class  WeaponIK
 This class allows for a 3D character to grab its current weapon's handles, and look wherever it's aiming. There's a bit of setup involved. You need to have a CharacterHandleWeapon component on your character, it needs an animator with IKPass active (this is set in the Layers tab of the animator) the animator's avatar MUST be set as humanoid And you need to put that script on the same gameobject as the animator (otherwise it won't work). Finally, you need to set left and right handles (or only one of these) on your weapon(s). More...
 
class  WeaponLaserSight
 Add this class to a weapon and it'll project a laser ray towards the direction the weapon is facing More...
 
class  WeaponRecoilProperties
 A class used to store recoil properties, defining forces to apply on both ground and air, style, delay, and an associated feedback More...
 
class  WelcomeWindow
 
class  Zipline
 A zipline will allow you to travel between two poles (from Pole1 to Pole2) using a grip. It requires a little bit of setup, as you'll need two poles, a line renderer, a grip, and all that bound together. You'll find an example of that in situation in the RetroForest demo scene. More...
 

Enumerations

enum  MMCharacterEventTypes {
  MMCharacterEventTypes.ButtonActivation, MMCharacterEventTypes.Jump, MMCharacterEventTypes.AbilityNodeSwap, MMCharacterEventTypes.Bounce,
  MMCharacterEventTypes.Crouch, MMCharacterEventTypes.Crush, MMCharacterEventTypes.Dash, MMCharacterEventTypes.Dangling,
  MMCharacterEventTypes.Dive, MMCharacterEventTypes.FallDamage, MMCharacterEventTypes.Fly, MMCharacterEventTypes.FollowPath,
  MMCharacterEventTypes.Glide, MMCharacterEventTypes.Grab, MMCharacterEventTypes.Grip, MMCharacterEventTypes.HandleWeapon,
  MMCharacterEventTypes.Jetpack, MMCharacterEventTypes.Ladder, MMCharacterEventTypes.LedgeHang, MMCharacterEventTypes.LookUp,
  MMCharacterEventTypes.Roll, MMCharacterEventTypes.Run, MMCharacterEventTypes.Stun, MMCharacterEventTypes.Swap,
  MMCharacterEventTypes.TimeControl, MMCharacterEventTypes.WallCling, MMCharacterEventTypes.WallJump
}
 A list of possible events used by the character More...
 
enum  MMLifeCycleEventTypes { MMLifeCycleEventTypes.Death, MMLifeCycleEventTypes.Revive }
 
enum  DamageTypeModes { DamageTypeModes.BaseDamage, DamageTypeModes.TypedDamage }
 
enum  MMCameraEventTypes {
  MMCameraEventTypes.SetTargetCharacter, MMCameraEventTypes.SetConfiner, MMCameraEventTypes.StartFollowing, MMCameraEventTypes.StopFollowing,
  MMCameraEventTypes.ResetPriorities
}
 
enum  CorgiEngineEventTypes {
  CorgiEngineEventTypes.SpawnCharacterStarts, CorgiEngineEventTypes.LevelStart, CorgiEngineEventTypes.LevelComplete, CorgiEngineEventTypes.LevelEnd,
  CorgiEngineEventTypes.Pause, CorgiEngineEventTypes.UnPause, CorgiEngineEventTypes.PlayerDeath, CorgiEngineEventTypes.Respawn,
  CorgiEngineEventTypes.StarPicked, CorgiEngineEventTypes.GameOver, CorgiEngineEventTypes.CharacterSwitch, CorgiEngineEventTypes.CharacterSwap,
  CorgiEngineEventTypes.TogglePause, CorgiEngineEventTypes.LoadNextScene, CorgiEngineEventTypes.PauseNoMenu, CorgiEngineEventTypes.LivesCountChanged
}
 A list of the possible Corgi Engine base events LevelStart : triggered by the LevelManager when a level starts LevelComplete : can be triggered when the end of a level is reached LevelEnd : same thing Pause : triggered when a pause is starting UnPause : triggered when a pause is ending and going back to normal PlayerDeath : triggered when the player character dies Respawn : triggered when the player character respawns StarPicked : triggered when a star bonus gets picked GameOver : triggered by the LevelManager when all lives are lost CharacterSwitch : triggered when the character gets switched CharacterSwap : triggered when the character gets swapped TogglePause : triggered to request a pause (or unpause) More...
 
enum  PointsMethods { PointsMethods.Add, PointsMethods.Set }
 A list of the methods available to change the current score More...
 
enum  PauseMethods { PauseMethods.PauseMenu, PauseMethods.NoPauseMenu }
 
enum  MMCinemachineBrainEventTypes { MMCinemachineBrainEventTypes.ChangeBlendDuration }
 

Enumeration Type Documentation

◆ CorgiEngineEventTypes

A list of the possible Corgi Engine base events LevelStart : triggered by the LevelManager when a level starts LevelComplete : can be triggered when the end of a level is reached LevelEnd : same thing Pause : triggered when a pause is starting UnPause : triggered when a pause is ending and going back to normal PlayerDeath : triggered when the player character dies Respawn : triggered when the player character respawns StarPicked : triggered when a star bonus gets picked GameOver : triggered by the LevelManager when all lives are lost CharacterSwitch : triggered when the character gets switched CharacterSwap : triggered when the character gets swapped TogglePause : triggered to request a pause (or unpause)

Enumerator
SpawnCharacterStarts 
LevelStart 
LevelComplete 
LevelEnd 
Pause 
UnPause 
PlayerDeath 
Respawn 
StarPicked 
GameOver 
CharacterSwitch 
CharacterSwap 
TogglePause 
LoadNextScene 
PauseNoMenu 
LivesCountChanged 

◆ DamageTypeModes

Enumerator
BaseDamage 
TypedDamage 

◆ MMCameraEventTypes

Enumerator
SetTargetCharacter 
SetConfiner 
StartFollowing 
StopFollowing 
ResetPriorities 

◆ MMCharacterEventTypes

A list of possible events used by the character

Enumerator
ButtonActivation 
Jump 
AbilityNodeSwap 
Bounce 
Crouch 
Crush 
Dash 
Dangling 
Dive 
FallDamage 
Fly 
FollowPath 
Glide 
Grab 
Grip 
HandleWeapon 
Jetpack 
Ladder 
LedgeHang 
LookUp 
Roll 
Run 
Stun 
Swap 
TimeControl 
WallCling 
WallJump 

◆ MMCinemachineBrainEventTypes

Enumerator
ChangeBlendDuration 

◆ MMLifeCycleEventTypes

Enumerator
Death 
Revive 

◆ PauseMethods

Enumerator
PauseMenu 
NoPauseMenu 

◆ PointsMethods

A list of the methods available to change the current score

Enumerator
Add 
Set