How do I get a sound to play on a specific frame?

I’m trying to figure out how to make a sound I have play on a certain frame rather than have it play instantaneously when I trigger the animation. What would be the most efficient way to do this (using c# preferably)?

Here’s the script that plays my animation:

using UnityEngine;
using System.Collections;

public class Boulder : MonoBehaviour {

	public AudioClip RockRolling;
	public AudioClip boom;
	float time;

	// Use this for initialization
	void Start () {
		gameObject.collider.enabled = true;
	}

	void OnTriggerEnter(Collider col) {
		if(col.gameObject.tag == "Player") {
			animation.Play("BoulderMove");
			audio.PlayOneShot(boom);
			gameObject.collider.enabled = false;
		}
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

In the animation window, there is a button next to “Add Keyframe” called “Add Event”.

First make the function (event):

void playBoomSound() {

AudioSource.PlayClipAtPoint(boomSound, mainCamera.transform.position, 0.75f);

}

Then go to your timeline and click “Add Event” on the exact frame where you want it to play. Then select the function “playBoomSound” from the dropdown menu.

The “0.75f” is just the volume if you’re wondering, you can leave that out for max volume.