pause before loading scene

hi everyone

find solution which work for me for loading scene with pause like this

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadingScene : MonoBehaviour {


  //IEnumerator Generics
  IEnumerator pauseLoadingScene()
    {
        yield return new WaitForSeconds(5f);     
    }




    // Start is called before the first frame update
    void Start()
    {     
       StartCoroutine(pauseLoadingScene());
    }



    void Update()   {
    }



}

anybody know easy way, how loading scene forexample like this ?

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;


public class finalWall5 : MonoBehaviour {
               

    public GameObject finalWallLevel5;

    //wall particle effect
    public GameObject finalwall5pe;


    private GameManagerLevels GMControl;
    public string loadinglevel; 
         

    // Start is called before the first frame update
    void Start()
    {
        finalwallpe.SetActive(false);
        GMControl = FindObjectOfType<GameManagerLevels>();      
    }
                


    public void checkscore500coll()
    {

    #if UNITY_ANDROID
        if (GMControl.currentScore == 500)
     {  

    //snd effect
    //particle effect
          

    Time.timeScale = 1f;

    SceneManager.LoadScene(loadinglevel);

    }
    #endif


    }

}

big problem for me what I cant use snd or particle effect rightly because thats not work for me, and scene loading

thanks for advices

now work for me like this :wink:

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;

public class levelTeleportation : MonoBehaviour {
     
    //wall teleportation particle
    public GameObject wallteleportationpe;

    public string loadingLevel;

    private finalWall finalwallControl;
    //private GameManagerLevels GMControl;


    public float timeToLoad = 3; 
    private bool loadingLevelStart = false;
         


    // Start is called before the first frame update
    void Start()
    {
        //GMControl = FindObjectOfType<GameManagerLevels>();      
        finalwallControl = FindObjectOfType<finalWall>();
        wallteleportationpe.SetActive(false);
    }



    void OnCollisionEnter2D(Collision2D other)
    {     

        if (other.gameObject.tag == "mainplayer")
        {
            loadingLevelStart = true;
       
            //wall teleportation particle
            wallteleportationpe.SetActive(true);            
        }                   

    }
        


    void pauseSceneLoading()
    {
        timeToLoad -= Time.deltaTime;
        if (timeToLoad <= 0)
        {
            finalwallControl.checkscore500coll();
        }
    }



    void Update() {
             
        if(loadingLevelStart == true)
        {
        pauseSceneLoading();
        }


    }


}