An Editor tool for painting pre-defined GameObject sets in the world.
Here is the devlog behind the main math implementations of this tool.
![]() |
---|
This GIF demonstration uses Unity's 3D Game Kit demo assets. |
- Paint GameObjects in the Editor by adjusting brush settings.
- Preview brush elements that will be placed.
- Create different sets of brushes.
- Brush elements will automatically find suitable surfaces to be placed on.
There are several ways to install this package into your Unity project:
- Unity Package Manager
- In the Unity Editor, go to
Window
>Package Manager
. - In the Package Manager window, click on the top left plus (+) icon, and then click
Add package from git URL...
. - Paste the following link:
https://github.com/huchi57/GameObjectPainter.git
, and then click onAdd
.
- In the Unity Editor, go to
- Plain Install
- Clone / download this repository and put it under your project's Asset folder.
After installation, you should be able to use add a GameObject Painter by one of the two methods:
Components
>OwO
>GameObject Painter
.GameObject
>OwO
>GameObject Painter
.
A demo scene can be located at the directory Sample/GameObjectPainter_DemoScene.unity
.
Here is what the GameObject Painter looks like in the Editor. The following section contains a brief introduction to each field's usages, and how to use this tool.
![]() |
---|
Field | Description |
---|---|
Layer Mask | The detection layers that a GameObject can be painted on. |
Reverse Scroll Wheel Control | When enabled, scroll whell controls will be inverted. |
Brush Shape | The shape of the brush, including Sphere, Cylinder, and Box. |
Brush Radius | The radius of the GameObject brush. The higher the value, the more area the objects will cover. |
Brush Density | How dense should the GameObjects be painted. |
Brush Height | How high the brush volume is. |
Max Random Rotate Angle | The max angle that a GameObject element will rotate along its local center. |
Max Slope Angle | The max angle of the slope that allows a GameObject to be painted. |
Offset Rotate Angle | The global rotation of all GameObjects to be painted. |
The following settings are different per brush.
Field | Description |
---|---|
Brush Name | The display name of the brush. |
Min Scale | The min scale of an individual GameObject element. |
Max Scale | The max scale of an individual GameObject element. |
- When a GameObject Painter is added to a Scene, a default empty "New Brush" is created automatically.
- Go to the brush's
Brush Elements
list and add Prefabs that you wish to be painted, and set up the brush'sMin Scale
andMax Scale
. - Move the cursor to the Scene View. If set up correctly, you should see GameObject previews enclosed in outlines indicating the size and the area of the brush.
- Left click to paint these objects.
- Left Click: Paint.
- Hold Alt + Left Click: Erase (the outline should changed into red when you hold the alt key.
- Hold Control + Mouse Scroll: Change the
Brush Radius
. - Hold Shift + Mouse Scroll: Change the
Brush Density
. - Hold Alt + Mouse Scroll: Change the
Brush Height
. - [ and ] keys: Change the
Offset Rotate Angle
.
- 3D Game Kit (link to the Asset Store) - by Unity Technologies.