← Back to projects

Unity Production Toolbox

A custom suite of Editor tools designed to speed up the workflow of designers, secure scene management, and clean up the Inspector. Tested and used in student productions.

Editor Scripting C# Reflection UX/UI

The Context

During my first projects on Unity, I discovered tools made by other people, particularly at my school, which allowed me to solve certain problems I was having. So I decided to create my own tool to solve my problems and make my life easier.

The project is taking shape and is being used in certain student projects. The long-term goal is a public release once the beta testing phase is complete.

01. Robust Scene Referencing

The UX Problem: Hardcoding scene names as strings leads to crashes if a scene is renamed. Furthermore, designers often forget to add new scenes to the Build Settings, breaking the game at runtime.

The Solution: A complete custom SceneReference type. It allows dragging and dropping Scene Assets safely. If the dropped scene is missing from the Build Settings, a custom Property Drawer detects it and displays a one-click button to fix the issue directly from the Inspector.

Test.cs EXEMPLE

using UnityEngine;
using RomainUTR.SLToolbox;
using UnityEngine.SceneManagement;

public class TestScene : MonoBehaviour
{
    [SLRequired, SerializeField] private SceneReference sceneRef;

    [SLButton("Load the scene")]
    private void LoadLevel()
    {
        Debug.Log("Loading the scene: " + sceneRef);
        SceneManager.LoadScene(sceneRef);
    }
}

02. Fast Scene Switcher

Navigating through project folders to find a specific level breaks the developer's flow. I created a fast, context-aware Scene Switcher Popup.

Instead of a clunky dockable window, it opens instantly via a custom shortcut or by clicking the scene in Hierarchy. It lists all available scenes and allows developers to jump between environments in a fraction of a second, drastically reducing iteration friction.

03. Custom Inspector Attributes

A clean Inspector leads to a cleaner game. Drawing inspiration from heavy plugins like Odin Inspector, I built a lightweight, native attribute library utilizing C# Reflection to empower the team without bloating the project.

[SLButton]

Transforms a standard C# method into a clickable Inspector button. Perfect for triggering debug events or level logic without entering Play Mode.

[SLMinMax]

Converts a Vector2 into a dual-slider. Essential for designers tweaking random ranges (like spawn delays or damage variations).

[SLCallback]

Uses Reflection to invoke a specific method the moment the serialized value is modified in the Inspector. Great for auto-updating visuals in the Editor.

[SLDropdown]

Dynamically populates a dropdown list by calling a function. Prevents spelling errors on dynamic IDs.

[SLReadOnly] & [SLTitle]

Formatting utilities. ReadOnly displays a variable without allowing modification, while Title creates clean, stylized headers to structure massive scripts.

[SLInline]

Allows editing ScriptableObjects directly within the component's Inspector, saving designers from constantly switching contexts.

Roadmap & Public Release

This toolbox is currently in closed beta, being battle-tested across student productions to gather UX feedback and fix edge cases. Once the toolbox is fully stabilized, my goal is to package it for a public release on the Unity Asset Store and/or GitHub to help other indie developers speed up their workflows.

Status: Closed Beta Target: Public Release