how to create a loading menu?

I wish that when the player goes to another map in the middle there is a loading screen that lasted a few seconds, but I can not find any guide on how to do it. You know you help me?

Here is a slightly simplified version of the script I use:

using UnityEngine;
using System.Collections;

public class LoadingScreen : MonoBehaviour
{
	[SerializeField]
	Renderer m_loadingScreen;
	
	[SerializeField]
	float m_fadeTime = 0.25f;
	
	void Awake()
	{
		s_instance = this;
		
		Object.DontDestroyOnLoad(this);
		
		gameObject.SetActiveRecursively(false);
	}
	
	void OnDestroy()
	{
		if (s_instance == this)
		{
			s_instance = null;
		}
	}
	
	IEnumerator LoadLevelImpl(string _name)
	{
		SetAlpha(0.0f);
		
		// Fade in
		float time = 0.0f;
		while (time < m_fadeTime)
		{
			yield return null;
			time += Time.deltaTime;
			
			SetAlpha(time / m_fadeTime);
		}
		
		SetAlpha(1.0f);
		
		Application.LoadLevel(_name);
		
		// Yield a couple of frames to avoid the spikes in awake/start when fading out
		yield return null;
		yield return null;
		
		// Fade out
		time = 0.0f;
		while (time < m_fadeTime)
		{
			yield return null;
			time += Time.deltaTime;
			
			SetAlpha(1.0f - (time / m_fadeTime));
		}
		
		SetAlpha(0.0f);
		
		gameObject.SetActiveRecursively(false);
	}
	
	void SetAlpha(float _alpha)
	{
		if (m_loadingScreen != null)
		{
			m_loadingScreen.material.color = new Color(1.0f, 1.0f, 1.0f, _alpha);
		}
	}
	
	public static void LoadLevel(string _name)
	{
		if (s_instance == null)
		{
			Debug.LogError("No LoadingScreen object in scene");
			return;
		}
		
		s_instance.gameObject.SetActiveRecursively(true);
		s_instance.StartCoroutine(s_instance.LoadLevelImpl(_name));
	}
	
	static LoadingScreen s_instance;
}

To use it create a game object and add this script to it. Then create two child game objects, to one of these add a renderer (a mesh renderer with the standard plane model will do) and to the other add a camera. Then setup the ‘Loading Screen’ reference in the parent object to point at the renderer.
Setup the camera so it points at your renderer, you should set it up how you want your loading screen to look, make sure that it’s the last camera to render so nothing renders over the top. You may also want to setup a separate layer to use for this. In the renderer you should use a material that supports alpha blending using the main colour.
The way the script works it will activate the child game objects so they become visible, perform a fade in, a level load, a fade out and finally disable itself.