How to create buildings in a town? Switch cameras or new scenes?

Hello, I am very new to code and would like some help as to how to go about creating my game.
It is a 2d top-down RPG type game, and you’re in a town. The town has buildings, and you can go in them. But I want it so that when you go into the building it acts as an immediate transition to a separate scene.

Ideally I would like to separate each room into its own scene and just load based on a player entering the triggers and pressing a button, but then when the player goes back into the town how do I preserve the progress they have made (i.e. particular dialogues that have been triggered, getting a dog, etc.), and even just tell Unity to put the player outside the building as opposed to their original starting position when beginning the game? I apologise if that’s convoluted.

The only other thing I can think of to bypass that is just create those separate rooms outside the main town and just teleport the player and switch the cameras. But that’s going to be really messy, because there are at least 25 buildings the player can go in and out of. Having that in the hierarchy is going to be a nightmare. Also, programming is hard and I have no idea how to do that without hours of googling.

What do you think?

Good day.

You have the 2 options, using diferent scenes, or not. But as you say, if using different scenes, you need to store aaal the data from town level to load it again once you get out of the building. For saving/loading data from scene to scene, you need to learn about Data persistance .

IF the building “level” is small, maybe is good to just have 1 scene and dont change it. You can have 2 different zones in your level, the town zone and the buildings interior zones. When the player enters the building, teleport the player object to the building zone (in the same scene). This way you dont need to save/load town data when entring /leaving a building.

I think best option is number 2.