Texture scaling on multiples surfaces

I’m really hoping this is a simple fix. I’ve currently got a cube and when I apply the texture, it’s stretched weirdly. Wouldn’t be a problem since you can play with the tiling properties but the correct (looking) tiling values for one side of the cube is not the same for the next side. IE: It’s a rectangle, the texture looks find from the front but the topside is now stretched weirdly.

Additionally, using the same material for another cube of a different size will result in even more weird texturing.

Do I need to have different materials for differently shaped cubes? Do I need to have different materials for the different sides of the cube?

There are two things you can do to work around this problem:

  1. Use World-space texture-mapped material instead of a material that uses UVs.

  2. Use the model’s UVs to tile your texture instead of the material properties.

For the first option, There is such a shader included with the Unity Standard Assets (used to render the grid pattern on all of the level geometry). It’s pretty basic, though.

For the second option, download ProBuilder from the Asset Store and use that. Most of the modeling options will automatically create tiling UVs rather than stretching the texture.