##### Я хочу отображать сетку на земле, когда игрок хочет построить здание. что оптимальнее, использовать shader или canvas?
В вашем случае оптимальнее использовать шейдер для отображения сетки на земле, поскольку это более производительное решение, особенно для 3D-игр. Canvas предназначен в основном для интерфейса пользователя (UI) и не является оптимальным выбором для отображения сетки в 3D-пространстве.
<br>
Хороший начальный урок по shader Graph
https://jwinters.ru/unity3d/shader-graph/
<br>
В целом про рейдеры
https://jwinters.ru/unity3d/shaders/
<br>
Как сделать сетку в Shader Graph
https://www.google.com/search?q=make+grid+in+shader+graph+unity
https://www.youtube.com/watch?v=xZNjnyuKuRQ
https://youtu.be/nKF4Pwb-6Ow
https://www.youtube.com/results?search_query=unity+grid+shader
Хорошая статья как сделать сетку
https://medium.com/codex/creating-a-procedural-grid-shader-in-unity-6d0b727bf52d
<br>
Купил кассеты, чтобы разобраться как рисовать шейдерами сетку на земле:
- [Easy Grid Builder Pro](https://assetstore.unity.com/packages/tools/game-toolkits/easy-grid-builder-pro-239234) (40$)
- Используется Canvas для рисования сетки на земле
- [Customizable Grid Shader](https://assetstore.unity.com/packages/vfx/shaders/customizable-grid-shader-242116) (5$)
- Используется Shader Graph, однако нет такого, что просто указал количество клеток по длине и ширине (мутное поле для увеличения количества линий)
- [Simple Grid Shader](https://assetstore.unity.com/packages/tools/simple-grid-shader-119988) (free)
- Не помню, либо так и не проверил.