C# Wait For Seconds

I’m not really good with C# so I’m having a hard time trying to figure out how to get this script to wait for about 3 or 4 seconds before allowing access to the next scene to be loaded.
I have also been trying to figure out how to get a sound to play before launching the next scene too.
What might make this one hard to figure out is that each of the log in buttons (and there are many) all use this same script. Here is the code I’m trying to work with.

using UnityEngine;
using UnityEngine.UI;
using System.Collections;


public class readkey : MonoBehaviour
{
	private Text inputText;
	private Text outputText;
	private Text acceptedText;
	
	string secret = "KITT2000";
	
	void Start ()
	{
		inputText = GameObject.Find ("InputText").GetComponent<Text> ();
		outputText = GameObject.Find ("OutputText").GetComponent<Text> ();
		inputText.text = "";
	}
	public void readButton (string c)
	{
		inputText.text += c;
		outputText.text = new string ('*', inputText.text.Length);
		if (inputText.text.Length == secret.Length) {
			if (inputText.text == secret) {
				acceptedText = GameObject.Find ("AcceptedText").GetComponent<Text> ();

				Application.LoadLevel ("SystemStatusScreen");
			} else {
				acceptedText.text = "ACCESS

GRANTED";
outputText.text = “WRONG PASS
TRY AGAIN”;
inputText.text = “”;
}
}
}
}

Try to put this instead ( timeToWait is a float expressed in seconds ):

if (inputText.text == secret) {
   acceptedText = GameObject.Find ("AcceptedText").GetComponent<Text> ();
   Invoke("loadLevel", timeToWait);
}

And create a function like this:

void loadLevel(){
    Application.LoadLevel ("SystemStatusScreen");
}

As you can notice, loadLevel() will be called after the value of timeToWait in seconds.

You can also use the Time class like this:

if (!setTimer) {

   // only set the timer once
   setTimer = true;

   // record what is the current time and add 1.5 seconds, for example
   waitUntilThisTime = Time.time + 1.5f;

}

if (Time.time > waitUntilThisTime) {

   // if the current time has caught up to the wait time, start next scene
   Application.LoadLevel(Application.loadedLevel + 1);

}

You can Do this

IEnumerator LoadSceneAfter4Seconds()
{

//Some stuff like Play audio

yield return new WaitForSeconds(4);

//Load Scene here

}

Call this function as follows
StartCoroutine(“LoadSceneAfter4Seconds”);