Pattern Painter LogoPattern Painter

Pattern Painter is a Unity Editor tool designed to speed up level design, prototyping, and game development workflows. It enables efficient placement of Game Objects in various geometric patterns.

Getting Started

The basic workflow is:

  1. Select a Game Object as a base surface for projection.
  2. Project a pattern of Placement Points and tweak its settings to your needs.
  3. Instantiate a Prefab at each Placement Point.

Optionally:

  • Adjust the rotation of generated Game Objects.
  • Align objects to other surfaces, like terrains and other meshes.

Placement Mode

Open the Pattern Painter UI via Tools > Pattern PainterPattern Painter tool menu

Select a single Game Object in the scene to serve as a “base surface” onto which the pattern will generate Placement Points. The selected Game Object or at least one of its children must have a Mesh.message-example-1Select a base surface

You will see a live preview of Placement Points (green spheres) projected onto the selected Game Object.Live preview of Placement Points

If they don't appear:

  • Move the camera closer to the object.
  • Adjust pattern settings to reduce point density.

Select a pattern and click “Calculate Placement Points”.Adjusted Placement Pointsmessage-example-3

Prefab Settings

Set a Prefab in the “Prefab to Instantiate” field. The green spheres will update to the Prefab’s silhouette.Projected Prefab sizes

Optionally, assign a Parent Object from the scene to keep prefabs organized.Assign Parent for Game Objects

Click “Create Prefabs at Placement Points” to generate prefabs at the Placement Points.Create Game Objectsmessage-example-4

Alignment Settings (Optional)

Adjust the rotation of generated Game Objects using the “Prefab Rotation Mode” dropdown, then click “Recalculate Prefab Rotation”.Recalculate Prefab Rotationmessage-example-5

Align to Terrain (Optional)

To align objects to another surface (e.g., a terrain), create a temporary cube to serve as a surface to project your pattern. Temporary base for alignment

Then select the Alignment Layer of the terrain and click “Align With Surface”.Align to Terrain

Important:

  • Target surface must be on a selected Alignment Layer.
  • It must have a Collider.
  • It must be below the base surface in world-space (Y-axis).

Developer Notes

  • Pattern Painter supports Undo & Redo for placement operations.Undo Placement
  • Warning appears if the pattern is too dense or too large.Long Running Process Warning
  • Press Space Bar to cancel a long-running operation.Long running process progress bar
  • For best performance, bake meshes together instead of tracking many nested objects.
  • Base surface must have a height (may not work on a single Plane).
  • Supports only one base surface selection at a time.

Known Limitations

  • Currently designed for 3D workflows, not tested for 2D.
  • Not recommended for high-density, large-scale terrain object placement.
  • Base surface must have a height, for example, a Cube instead of a single Plane.
  • Current version supports only one base surface selection at a time.

Release History

  • 💪 Version 2.0.0 (2025-04-14)

    A lot of improvements in this version, so we bumped it up a WHOLE version number!

    • New Logo! We have a shiny new logo.
    • Updated the preview to show your GameObject's mesh to skinned mesh instead of just the bounds.
    • User can control the transparency of the preview.
    • Automatically set the spacing when you load a new GameObject to the tool.
    • Improved the threshold to “align with surface normals” .
    • Improved UI to show all setting and support options in their own section.
    • Fixed a minor bug that could cause previous versions to get stuck in an infinite loop in certain cases where you re-load a scene.
    • Code improvements under-the-hood to make it easier to maintain and improve the tool going forward.
  • 🇨🇳 Version 1.1.1

    • Added Chinese (Simplified) localization for the entire tool UI!
    • Language can be switched from a simple menu.
    • Messages, buttons and documentation are fully localized in 4 languages.
  • 🇺🇸 🇯🇵 🇪🇸 Version 1.1.0

    • Added Spanish localization for the entire tool UI!
    • Language can be switched from a simple menu.
    • Messages, buttons and documentation are fully localized in 4 languages.
    • Improved UI layout to better accommodate localized text.
  • 🚀 Version 1.0.0 (2025-02-18)

    This version includes the ability to create the following patterns & functionality:

    • A rectangular grid.
    • A checkerboard.
    • A straight line.
    • A circular line.
    • Concentric circles.
    • Radial spokes outward from the center.
    • Live preview of the pattern placement points.
    • Show estimated size of Game Objects on the scene.
    • User friendly status messages.
    • Align with surface.
    • Abort long-running process.
    • Update rotation of created Game Objects.
    • Specify the parent for the newly created Game Objects.
    • Undo/Redo.