Makinom - Game Toolkit for Unity
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • Extensions
    • API
  • Makinom 1
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get Makinom

Guide

Plugins

  • Plugins Overview
  • Compass Navigator Pro Plugin
  • Save Game Compression Plugin

Schematic Nodes

  • Schematic Nodes Overview
  • Cinemachine Nodes
  • Footstepper Nodes
  • Post Processing Nodes
  • Unity Ads Nodes
  • Unity Analytics Nodes
  • Video Player Nodes

Scripts

  • Scripts Overview
  • A* Pathfinding Movement Component
  • Core GameKit Wrapper
  • Loading Screen Pro Scene Load
  • PolyNav 2D Movement Component
  • Pool Boss Wrapper
  • Rewired Input Key
  • Unity Input Action Input Key

Setups

  • Setups Overview
  • PS4 Controller Mapping
  • XBox Controller Mapping
  • Switch Pro Controller Mapping
  • Home
  • Guide
  • Extensions
  • Plugins
  • Plugins Overview

Plugins Overview

Table of Contents
  • Creating Custom Plugins
    • Sample Plugin
    • Plugin Code
  • Extension Manager

Use plugins to extend Makinom’s functionality.

Plugins can be used to add content and store custom settings in the Makinom project asset without changing the source code of Makinom. They also contain functions that will automatically be called by Makinom, e.g. when Makinom is initialized, starts a new game or loads a game.

Once a plugin’s code is in your Unity project, you can use it in Makinom by adding and selecting the plugin in Editor > Plugins.

When you want to remove a plugin, make sure to first remove it in the Makinom editor before removing the plugin’s code (and save the changes).

Creating Custom Plugins #

Create custom plugins by deriving from the BasePlugin class (namespace GamingIsLove.Makinom) and implementing all the required abstract functions and properties. See below for a sample plugin integration.

Make sure to use an EditorSettingInfo attribute for the class to define the name and description of your plugin, as this information is used by the selection popup in the Makinom editor to select your plugin.

Sample Plugin #

Use the sample plugin as a basis for your custom plugin – just remove the settings and add your own as needed. You should also either use a different namespace or rename the SamplePlugin class to a different name, as well as change the EditorSettingsInfo attribute’s content.

You can download a sample plugin implementation here.

Download Plugin

Plugin Code #

See the the bare minimum of a plugin’s code below. This is basically the sample plugin without any settings.

using UnityEngine;
using System.Collections.Generic;

// INFO: Add plugins in 'Editor > Plugins' in the Makinom editor.
namespace GamingIsLove.Makinom.Plugins
{
    /* INFO: 
    The settings available in 'Editor > Plugins' in the Makinom editor must be placed in this class
    (or sub-classes implementing the 'IBaseData' interface or extending from 'BaseData').
    The 'EditorSettingsInfo' attribute defines the name and description of the plugin in the selection popup.
    */
    [EditorSettingInfo("Sampe Plugin", "A sample plugin.")]
    public class SamplePlugin : BasePlugin
    {
        public SamplePlugin()
        {

        }

        // INFO: This is used to display the plugin's version in the editor.
        public override string Version
        {
            get { return "1.0.0"; }
        }


        /*
        ============================================================================
        Makinom callback functions
        ============================================================================
        */
        public override void OnInitialize()
        {
            // INFO: Called when Makinom is initialized.
        }

        public override void OnNewGame()
        {
            // INFO: Called when starting a new game.
        }

        public override void OnLoadGame()
        {
            // INFO: Called when loading a saved game.
        }

        public override void Tick()
        {
            // INFO: Optionally called on each Update tick.
        }

        public override void GUITick()
        {
            // INFO: Optionally called on each GUI update tick.
        }

        public override void SceneLoaded()
        {
            // INFO: Optionally called on each scene load.
        }

        public override void SceneNameLoaded(string sceneName)
        {
            // INFO: Optionally called on each scene load, forwarding the name of the loaded scene.
        }

        public override bool Call(string info)
        {
            // INFO: Called from 'Call Plugin' schematic nodes.
            // Use the info string to pass information about the call to do different things.
            return false;
        }
    }
}

Extension Manager #

The extension manager can be used to browse, download and import available extensions (e.g. plugins, custom nodes, other scripts or schematics) for Makinom.

Open it using the Unity Menu: Window > Makinom Extension Manager

Make sure to save your open Makinom project or schematics (in the Makinom editor) before importing any package, as importing a package will reset all unsaved changes.

Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Updated on May 21, 2022
Table of Contents
  • Creating Custom Plugins
    • Sample Plugin
    • Plugin Code
  • Extension Manager
Sitemap
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • Extensions
    • API
  • Makinom 1 Hub
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get Makinom
  • Contact
  • Blog
  • ORK Framework
  • gamingislove.com
Categories
  • Makinom 1 (97)
    • Tutorial (97)
      • 2D Platformer (14)
      • 2D Roguelike (8)
      • Breakout (6)
      • How-to (34)
      • Match 3 (6)
      • Schematic (4)
      • Scripting (6)
      • Space Shooter (11)
      • Survival Shooter (8)
  • News (11)
  • Release (68)
Search

© 2015 Gaming is Love e.U.

Disclosure: This site may contain affiliate links, which means I may receive a commission if you click a link and purchase something that I have recommended. While clicking these links won’t cost you any money, they will help me fund my development projects while recommending great assets!