Step one is to get our zombie to chase us if we attack it even if it is out of range. To handle this I created a new component called Aggression which has a pair of events attached to it: Aggro Started and Aggro Ended. These are responsible for toggling the Search For Target component. Aggro Started is a custom Unity Event that passes the offending transform which Follow Player can use to set the target.
Hey, do NOT change the center of the capsule collider. The FPS controller out of the Standard Assets pack does not know how to deal with this. Instead, adjust the y-position of everything by half the height if you are going to make adjustments. The video below shows how I handled positioning the camera and guns using a prop model from the Synty Apocalypse pack.
And finally we raycast to hit the Capsule which generates aggro and makes some noise. The gunfire is controlled using ring buffers attached to each weapon type.
And here is the modified One Off Sound FX script to cache the countdown just one time and then simply restart the coroutine On Enable. Nothing else needs to happen since the sounds play On Awake (which is actually On Enable).