Cool, that is a nice project! I don't know about the best way to do it but i can tell you what i did.
For player movement i used CharacterController this is a nice starting point:
And for world building i used an Unity Asset which is Pro Builder, another video reference from Brackeys:With this two things you are almost ready to go. To check items, i used raycast (https://docs.unity3d.com/ScriptReference/Physics.RaycastNonAlloc.html)At last, you will need some texture to add to the walls, but there are plenty for free.
If you have any doubt about building this just send me a message.
Good luck!