• Manual
  • Scripting API
Show / Hide Table of Contents
  • Quick Start Guide
  • The Demo Project
  • The Runtime Manager UI
  • Understanding Colorers
  • Importing Palettes
  • Performances Considerations
  • Packages Architecture

The Runtime Manager UI

The `Runtime Manager UI` window

The Runtime Manager UI that appears in the Demo is isolated from both the core system and the demo.

This means that if you want, you can easily use it in your projects, providing an alternative UI for palette setup and also the capability to change palettes in builds, without having to use the Unity Editor.

A common scenario for this kind of usage is: you want to hire a free-lance artist to do some color tuning on your project, but maybe he has no experience with the Unity Editor, or you can't (or don't want to) share with him the project source code.

Adding the Runtime Manager UI to your scene allows the artist to tune colors with only a build of the project, at runtime, and to export the modified palette to a JSON file.

When he's done with the tuning, he will send you the JSON file and you will be able to import it in the Unity Editor substituting your "placeholder" palette.

Additionally, the Runtime Manager UI source code can guide you in building similar features in your projects. For example, a character customization screen might similarly let you change some colors (and you could save/load the modified palette to/from JSON data to store in your player savegame).

How to add the Runtime Manager UI to a scene?

It's super easy: just drag the p_SCP_RuntimeManagerUI prefab into your scene, under a Canvas node.

By default, the Runtime Manager UI stays hidden. To show it up, you will need to call the show() method of its SCP_RuntimeManagerUI component from another script.

For example, on another node, you can add this script that shows the Runtime Manager UI when pressing the M key. Remember to initialize the m_rRuntimeManagerUI reference with the p_SCP_RuntimeManagerUI node under the Canvas element.

using UnityEngine;
using BinaryCharm.SemanticColorPalette.RuntimeManagement;

public class MainBhv : MonoBehaviour
{
    [SerializeField] private SCP_RuntimeManagerUI m_rRuntimeManagerUI;

    void Update() {
        if (Input.GetKeyDown(KeyCode.M)) m_rRuntimeManagerUI.Show();
    }
}

What if I don't need it?

You should remove from your projects the folders:

  • Assets\BinaryCharm\SemanticColorPalette.RuntimeManagerUI
  • Assets\BinaryCharm\SemanticColorPalette.RuntimeManagerUI.ThirdParty

This way, you won't include in your build unnecessary elements.

In This Article
Back to top Binary Charm