As practice for level design, I'm making a level that consists of a series of rooms. These rooms will either contain puzzle elements, enemies to fight or both. The rooms are fairly small and set next to each other. The room is constructed from a single wall in a square. There are no doors.
The first problem is that players can use their cameras to look into other rooms. Part of the fun is not knowing what's coming up next. I tried several different methods of creating something to block the player's vision while the character was outside the room. The most effective method was to duplicate the wall object used for a room, drag it up to rest on top of the walls and modify the properties so it would automatically generate a roof. Then I enabled fading and set fade opacity to 0 so when the player is under the roof, the roof disappears completely. I thought I was golden until I realized I could still maneuver my camera just right and see through the roof while not in the room, making the whole thing pointless.
This may also be due to some difficulties I had in that process. For some reason, my walls refused to generate a "roof". Instead, I had it generate a floor and I offset the height so that it was placed at roof level. I'm not sure if this made a difference or not.
The second problem is that AI pathing is too smart. I have a button in Room 1 that, when used, will teleport the player to a location in Room 2. But if I simply right click into Room 2 while in Room 1, the AI pathing has the player move to the button, press it to teleport then walk to where I clicked in Room 2. I want the players to need to find the button. This is all negated if the characters can simply locate the teleporting object like this. Is there any way to prevent the AI from figuring this out?