RigidBody Collision Detection Error

I have an FPS zombie game in progress.
The problem regards a player, walls, and zombies.
The player does not go through the walls, and the zombie does not go through the player, however the zombie goes through the walls.
The zombie is programmed to follow the player.
I’ve tried collision boxes and rigidbody masses, but nothing’s working. I just need the zombie not to go through the walls.
So my question is essentially, how would I make a moving object not be able to pass a non-moving object?
Can someone provide a solution? I’m out of ideas.
Thanks

do ray casting on four sides to the Zombie .take four bool variables like hit_T,hit_L,hit_R,hit_D.

if the Zombie is hitting the wall at Left then make hit_L =true; and hit_R,hit_T,hit_D=false.
whenever the hit_L is false then only move the Zombie to the left.like this way do for all