アニメーションイベントを使ってNPCの足音を鳴らしてみます。まずキャラクターのFBXファイルのインポート設定のAnimationタブで歩くアニメーションを選択して、下の方のEventsを見てみます。
Eventsの横の三角形をクリックすると時間軸が出てきます。これは一番下のアニメーションのプレビューと連動しているので、地面に足がつくところに白い縦線を移動します。

位置が決まったら、Eventsの文字のすぐ下にあるシグナルのマークの付いたボタンをクリックします。すると、その位置にマークが追加されて、関数名や渡す値を入力できるようになるので、足音を鳴らすための関数名を入力しておきます。

もう片方の足にも関数を設定して、Applyを押します。そして、このキャラに付けたスクリプトに同じ名前の関数を作ります。
void Footsteps()
{
if (footstepSound.Length == 0) return;
// 足音を鳴らす
}
すると設定したタイミングでこの関数が呼ばれます。publicでなくても問題ありません。
足音のオーディオクリップの配列はキャラのインスタンスを作ったときに入れています。一時的に配列にオーディオクリップがなくてエラーが出るときがあるので、長さが0のときは鳴らさないようにしました。