Newbie question about scaling and moving

I think I might’ve misunderstood something about 3d operations…



I’ve created a gameworld, which cosists of blocks attached to a node. Now I want to scale this node so that the entire map is visible and I want to move it so it becomes centered. Just scaling and moving works perfectly by themselves, but when I apply both operations the map ends up in an entirely different place. Doesn’t seem to matter in which order the operations are applied. Also tried creating an extra node so that the inner node is just scaled, and this is later translated by the other node. However it produced exactly the same result.

If your maps meshes are not centered it might seem like the outcome is not what you expected. Also, having the wrong scale in the first place when creating multiple objects is not really a good approach, why cant you create the meshes with the correct size from the beginning?

Well I have the game world in a 2d array so I’d like to have everything attached to a node, where [x][y] in the array is located at (x,0,y) in the “real” world (it’s tower defence, player looks at the world from above). Then I thought I could scale and move this node around to have the world appear in the right place, but maybe it’s better to move the camera instead?

All your game objects including camera should be in “world space”. If you need the camera to appear in a certain place its best to move it to the correct world coordinates.

If you’re applying the scale after translating, then the translation wont be effected by the scale. E.g. if you move all objects 5 units to the left, then you scale them by 10, you actually moved them by only 0.5 units since all objects are now in different scale.