The GridSize of the tilemap doesn't match at all

Hello.
I decided to create a retro map where players can only move up, down, left, and right.

Since the grid size is 64, I prepared the following image for testing.


This image is 256x256 pixels and is intended to contain four 64x64 tile maps.

Based on this explanation,

the following settings should be fine.
Since one tile is 64 pixels, the PPU is 64.


When I create a Palette and drag and drop this image, it ends up like this.
I want one color from the test image to be one grid size, but all four colors end up in one grid.
The Palette’s Grid CellSize is also 64×64.

I can’t find anything to fix this.
What on earth is wrong?

Unity Ver:6000.3.0f1
2D Tilemap Editor Ver:1.0.0

NOTE: If the image itself is 256x256, then each tile above is 128x128, not 64x64.

Ah, I definitely misunderstood.
So I left the image as-is and reset the size to 128x128 instead of 64x64, but it still doesn’t work.
This time the tiles display very small. What could be the reason?

It contains 4 “tiles” or “tiled sprites”. The “tilemap” is what you fill with tiles to create a “map”. What you have is called a “tile set” or “tile atlas (texture)”.

Note that you can also use individual sprites. This will be far easier to work with. You can use Unity’s SpriteAtlas to generate a single texture for more efficient rendering. This happens transparently, once setup the individual tiles you use will actually be rendered from the sprite atlas.

This is because you’ve used the tile atlas image (2x2 tiles) to be a tile in and of itself. If you use such a tileset image, you need to set it up as a sprite atlas texture and “slice” the individual tiles.

Hence why I say it’ll be easier to work with individual tile sprites. If you even design the sprites individually and then put them together in an image program to create a single tile atlas texture, then you’d have to “undo” that process in Unity all over again.

This is not a requirement, and often misunderstood.

A PPU of 64 for a 64x64 sprite simply means that the sprite will be one unit wide and high. You can use 32 or 128 or any other number - this just changes how big the images will be at the default scale. Though for tilemaps it helps to reason about things since a matching PPU also means your tilemap coordinate system runs along integer values (0,1,2,3,4).

It contains 4 “tiles” or “tiled sprites”. The “tilemap” is what you fill with tiles to create a “map”. What you have is called a “tile set” or “tile atlas (texture)”.
Note that you can also use individual sprites. This will be far easier to work with. You can use Unity’s SpriteAtlas to generate a single texture for more efficient rendering. This happens transparently, once setup the individual tiles you use will actually be rendered from the sprite atlas.

Since many tile map assets are consolidated into a single image,

This is because you’ve used the tile atlas image (2x2 tiles) to be a tile in and of itself. If you use such a tileset image, you need to set it up as a sprite atlas texture and “slice” the individual tiles.
Hence why I say it’ll be easier to work with individual tile sprites. If you even design the sprites individually and then put them together in an image program to create a single tile atlas texture, then you’d have to “undo” that process in Unity all over again.

Well, if the images were organized according to a specific pattern, it wasn’t difficult to slice them into individual images in Unity.

This is not a requirement, and often misunderstood.
A PPU of 64 for a 64x64 sprite simply means that the sprite will be one unit wide and high. You can use 32 or 128 or any other number - this just changes how big the images will be at the default scale. Though for tilemaps it helps to reason about things since a matching PPU also means your tilemap coordinate system runs along integer values (0,1,2,3,4).

Hmm, I don’t really get it, but I definitely understand now that 64 isn’t necessarily the right answer.