in the Roll a Ball tutorial why different objects transform scale end in different game size?

in this chapter

he say to create the walls around the ground.

the ground transform scale is x:2 y:1 z:2

so when I create a wall and give it same size of x:2 y:1 z:2 it actually a lot smaller than the ground and to make it same size I need (like in the tut) to give it a values of x:0.5 y:2 z:20.5

why whats the reason for that? why the ground z:2 is = wall z:20.5?

p.s does http://answers.unity3d.com death? waiting more than 24 hrs to confirm post

The reason why the walls are much smaller than the ground although they have the same transform.scale properties are because flat planes are naturally larger than cubes.
If you spawn a cube and a plane and reset their transform, you will immediately see the difference.
A cube is about 1meter/UnityUnits large if one 1:1:1 Scaling while a flat plane is about 10.5 Meters/UnityUnits long on 1:1:1 Scaling.

2 Likes

This. Scale is a multiplier. You’re multiplying the base size of the object.

It’s operated by volunteers. Once you’ve gotten a little bit of karma (I believe it’s 15) you’ll no longer have to wait for mods to approve your posts there.

1 Like

thanks guys I understand it now but still make no sense for me.

maybe because i am in the beginning but wouldn’t it be lot more easier if everything was on the same scale size?

like if I want to put a plane and make a walls to the plane, why I need to guess the wall size instead of just giving it same size as plane.

In all honesty, when making a full game, you’re not going to be using Unity’s primitives, so this won’t be an issue. You’ll import your models from a 3D modeling program like Blender, Maya, or 3DSMax.

My guess as to the reasoning for a plane being 10x10 Unity units instead of 1x1 is that it’s primary use is as a placeholder ground for testing character controllers, shadow-casting, and whatnot. 1x1 is useless as far as that goes, but a 10x10 plane is often enough to get the idea. Having the default size be 10x10 is a matter of convenience for the most common use of the plane primitive type.

That said, it’s also quite possible that when Unity was first released nearly 10 years ago, it was just randomly decided to have a plane be larger than a cube. And as the years went on, it never got changed, to the point that adjusting it at this point would be more of a detriment (breaking people’s existing projects) outweighing any benefit having a plane be 1x1 would provide.

2 Likes

@Schneider21 Hi a little question when you make fps with simple flat ground like doom or counter strike, you still getting the “rooms” from 3d program or in that case you use Unity’s primitives?

I made an asset for building space ships called Modular Space Freighter. It uses tileable pieces that fit together in a grid-based layout. Screenshot incoming:

I would probably do the exact same thing for the level geometry in an FPS, too (obviously with only the inward-facing geometry).

One thing about primitives you may not be thinking about yet is UV mapping. On Unity primitives, each face is mapped 1:1 to the full size of a texture. That may be fine for a floor (plane), but it’s probably not what you want on even a simple object like a wooden crate (cube), where the top texture should probably look different than the sides.

If you’re just whiteboxing something out to make a prototype, using primitives is totally fine (and preferable!), so you really don’t have to worry about learning another new skill set just yet!

1 Like

Alternatively you can use a CSG solution for whiteboxing. SabreCSG is free open source.

About the only time I use Unity’s primitives now are for quick experiments where importing is wasted time.

1 Like

If it was one by one it would be a quad, not a plane.

Its an entirely useless distinction, but there you have it.

1 Like