
Overview
In Unity, a gizmo is a visual aid rendered in Unity's Scene View to help us in the development process. Several components in Unity use gizmos to tell the developers where in the 3D world these are located.
Take a look at the following screenshot. The two icons, the movie camera and the light bulb, are gizmos that indicate the game object position of the camera and the point light components, respectively.

You can do the same with a specific game object if you click on the cube icon in their inspector pane:

Here you have three options to choose:
- Use a label
- Use a built-in icon
- Use a custom icon made with any image located inside your project
You will see the following three results, respectively, in the Scene View:

Any of these gizmos will be attached to the game object and will persist in the scene and in any prefab containing this game object.
All these examples use the Unity editor to do the required setup, but there is an additional way in which gizmos can be created, allowing greater flexibility due to the use of parameters related to our game logic. This is achieved through code using the Gizmos class.
Defining the chapter goals
In this chapter, we will start exploring the many alternatives we have for adding gizmos to Unity and then finish with the implementation of a visual grid for positioning the level piece prefabs, setting the boundaries for our level in this way.
The goals here are:
- Exploring how to add gizmos through code
- Defining the size of the level in terms of columns and rows
- Rendering a grid using gizmos based on the size of the level
- Implementing a snap to grid feature using the level piece prefabs
The final result that we will achieve looks like this:
