Intro

C# script boilerplate for Unity, common project patterns, and useful resources to accelerate development. It’s ideal for new projects or when setting up clean scripts, managers, and ScriptableObjects.

C# Script Boilerplate

When you create a new script in Unity, it automatically generates a foundational MonoBehaviour structure:

C# Script Boilerplate

using UnityEngine;
 
public class NewBehaviourScript : MonoBehaviour
{
    // Start is called once before the first frame update
    void Start()
    {
        
    }
 
    // Update is called once per frame
    void Update()
    {
        
    }
}

Common Patterns & Utility Boilerplate

Unity developers often rely on reusable patterns to maintain consistency and avoid repetitive code:

  • Singleton Pattern – Ensures only one instance exists. Useful for managers like GameManager or AudioManager.
  • ScriptableObjects – Store data separately from logic for flexibility and modularity.
  • Attributes – Use [SerializeField] to expose private variables in the Inspector or [RequireComponent] to automate dependencies.

Unity Project Templates

For complete projects, boilerplate can include starter kits with pre-installed packages and structured directories:

  • UnityProjectBase – Essential packages like localization, tweening, and dependency injection.
  • Unity-Boilerplate – Minimal setup with a Singleton GameManager and intro screen.
  • Unity-Mobile-App-BoilerPlate – Optimized for mobile UI and material design.

Workflow Acceleration Tools

Boost productivity with these tools:

  • IDE Snippets / Live Templates – Quickly generate Unity methods in Visual Studio or Rider.
  • Custom Script Templates – Modify Unity’s New C# Script template to include your preferred boilerplate.
  • CLI Tools – Scripts like create_unity_package automate standardized Unity package creation.

Resources

Notes

  • Boilerplate code accelerates development but should be customized for your project.
  • Keep your .gitignore updated to avoid committing unnecessary Unity metadata files.
  • ScriptableObjects are recommended for modular and data-driven projects.