Quick Battle Cutscene Splash

Hi, I am new to coding, but I need help to figure out how this is done.

I am creating a game like Plants vs Zombies.
I have towers set to shoot enemies on sight with raycast.
I have enemies moving left automatically with vector transform.

I want to make a script that counts down (or charges up) the tower for a special skill.
When you click the tower, the skill will freeze all enemy movement and towers shooting (and hopefully all game movement/income). Kind of like a quick pause. The user should not be able to do anything but watch the quick splash art like a comic pop up.

After 2 seconds of the splash screen, I want time to resume again.

I have tried to get component to disable the scripts but it says null reference.
I have tried timescale, but I can’t make it resume.

	public float Cooldown;
	private float cd;
	// Use this for initialization
	void Start () {
		cd = Cooldown*2;
	}
		IEnumerator delay () {
		yield return new WaitForSeconds(3);
	}

	// Update is called once per frame
	void Update () {
		if (cd > 0) {
			
			cd -= Time.deltaTime;
		}
		if(Input.GetMouseButtonDown(0)) {
			Time.timeScale=0;
			StartCoroutine ("delay");
			Time.timeScale=1;
			cd = Cooldown;

So you want every GameAction in spite of your screen to pause?
TimeScale doesn’t work because it affects all of your components, including the splashscreen, that doesn’t “proceed in time” either.
Disabling all components of your game seems a little to much for what you are trying to achieve here.
I’d suggest a public bool variable to be enabled or disabled by your Cutscenesplash. Every Update of freezing objects is only called, when this variable is set to false (of course except the one of your Cutscene). That would give you the effect you’re searching for.

That sounds a lot easier! Thank you for putting me in the right direction.