Unity Utility Scripts

11 free C# scripts 4 beginner6 intermediate1 advanced Unity 2022.3+ MIT licensed

Utilities are the scripts you rewrite in every project: an object pool so bullets and particles stop allocating, a generic singleton base class for managers, async scene loading with a progress bar, timers, and camera shake.

The category also holds a few larger systems that do not belong to one genre: a raycast interaction system, a wave spawner, a lightweight quest tracker, a day and night cycle, a BSP dungeon generator, and an Input Manager that puts Unity's legacy Input behind rebindable keys and events.

Start with Scene Manager

Async scene loading with loading screen, progress bar, and minimum load time. Clean transitions between levels.

SceneLoader.cs · 5 Inspector fields · beginner

Open Scene Manager
SceneLoader.cs
Script SceneLoader
Loading Settings
Minimum Load Time 1
Loading Screen None (GameObject)
Events
On Load Progress (float)
List is Empty
On Load Started ()
List is Empty
On Load Complete ()
List is Empty

All 11 utilities scripts

What these scripts need

Read from each script's source, so this list stays in step with the code.

  • Calls DontDestroyOnLoad, so the object survives scene loads. Place it once, in your first scene.

    5 of 11: Scene Manager, Generic Singleton, Object Pool, Quest System, Input Manager

  • Reads the legacy Input Manager (UnityEngine.Input). If Project Settings > Player > Active Input Handling is set to Input System Package only, Unity throws an InvalidOperationException; set it to Both.

    2 of 11: Interaction System, Input Manager

  • Loads scenes through SceneManager: add every scene it loads to Build Settings.

    Applies to: Scene Manager

  • Defines a ScriptableObject asset: create one from Assets > Create > Quests > Quest Data.

    Applies to: Quest System

Kits that build on them

Guides that use them