beginner

Essential Utilities

Scripts every Unity project needs regardless of genre — singletons, object pooling, input management, scene transitions, and more.

7 scripts

Learning Path

Follow these steps in order to build your Essential Utilities.

Included Scripts

Utilities Intermediate

Generic Singleton

Thread-safe, persistent singleton base class for managers like AudioManager, GameManager, etc.

General
public abstract class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
    private static T instance;
    public static T Instance
    {
        get { ... }
    }
2022.3+ · 1.2 KB
Utilities Intermediate

Object Pool

Generic object pooling system to reduce garbage collection. Perfect for bullets, particles, and e...

FPSGeneral
public class ObjectPool : MonoBehaviour
{
    public static ObjectPool Instance { get; private set; }
    public GameObject Spawn(string tag, Vector3 position, Quaternion rotation)
    public void Despawn(string tag, GameObject obj)
2022.3+ · 2.1 KB
Utilities Beginner

Scene Manager

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

General
public class SceneLoader : MonoBehaviour
{
    public static SceneLoader Instance { get; private set; }
    public void LoadScene(string sceneName)
    private IEnumerator LoadSceneAsync(string sceneName)
2022.3+ · 2.5 KB
Utilities Intermediate

Input Manager

Clean wrapper around Unity's new Input System with action map switching, rebinding support, and i...

General
public class InputManager : MonoBehaviour
{
    public static InputManager Instance { get; private set; }
    public bool WasPressed(string actionName)
    public void StartRebind(string actionName)
2022.3+ · 2.8 KB
Utilities Beginner

Timer / Countdown

Versatile timer with countdown, stopwatch, and repeating modes. Formatted time display and UnityE...

PuzzleGeneral
public class Timer : MonoBehaviour
{
    public enum TimerMode { Countdown, Stopwatch, Repeating }
    public UnityEvent OnTimerComplete;
    public UnityEvent<float> OnTimerTick;
    public void StartTimer()
2022.3+ · 2.1 KB
Audio Intermediate

Audio Manager

Complete audio manager with music crossfade, SFX pooling, volume control, and persistence.

General
public class AudioManager : MonoBehaviour
{
    public static AudioManager Instance { get; private set; }
    public void PlaySFX(AudioClip clip, float volumeScale = 1f)
    public void PlayMusic(AudioClip clip, bool crossfade = true)
2022.3+ · 4.5 KB
UI Beginner

Screen Fader

Simple screen fade-in/fade-out with configurable color and duration. Great for scene transitions.

General
public class ScreenFader : MonoBehaviour
{
    public static ScreenFader Instance { get; private set; }
    public Coroutine FadeIn(float duration = -1f)
    public Coroutine FadeOut(float duration = -1f)
2022.3+ · 1.6 KB