Setting a bool is not working with objects that have already spawned..

Hi. I’ll try and explain the best I can so bear with me.
I have a cube prefab that spawns and I have it set so that its destroyed on mouse click and when the public bool red is true(which is set to false on the cube script). I have a button that accesses that bool and sets it to true, basically so the object can only be destroyed after clicking the button.

Everything works, as in the button sets the bool red to true but it doesn’t let me destroy the existing spawned cubes, only cubes spawned after the button click.

Here’s the code for the Cube prefab.

using UnityEngine;
using System.Collections;

public class CubeRed : MonoBehaviour 
{

public float makeSmaller;
public bool isHit = true;
public bool red = false;

private int clickCount = 0;

void Update ()
	{
		if (Input.GetMouseButtonDown(0)&& red == true) 
		{
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;

			if(Physics.Raycast(ray,out hit))
			{
				isHit = false;

				if(hit.collider.gameObject==gameObject) 
				{
					// Sets the size of the cube when clicked.
					transform.localScale += new Vector3(-makeSmaller, -makeSmaller, -makeSmaller);
					// Adds to the clickCount Var
					clickCount += 1;

					// Sets the limit of the clickCount Var before destroying the object. 
					if (clickCount == 3)
					{
						Destroy(gameObject);
					}
				}			
			}
		}
	}
}

The code for the Button

using UnityEngine;
using System.Collections;

public class CodeRed : MonoBehaviour 
{
	public GameObject CubeRed;
	public bool isHit = true;

	// Update is called once per frame
	void Update () 
	{
		if (Input.GetMouseButtonDown(0)) 
		{
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit;
			
			if(Physics.Raycast(ray,out hit))
			{
				isHit = false;
				
				if(hit.collider.gameObject==gameObject) 
				{
					CubeRed.GetComponent<CubeRed>().red = true;
				}			
			}
		}
	}
}

Again im quite new to unity and coding in general so any other pointers would be greatly appreciated.

Thanks in adavance

What is public GameObject CubeRed; ? Is it the same Prefab you are using to instantiate the spawning cube(s)? If you instantiate a new Cube from it, the cloned cube is in no way magically connected to the original CubeRed , so setting red on the original Cube doesn’t change anything on the clone(s) afterwards. On the other hand if you change the original Cube (press the button first) and then instantiate, the clones will have the changed settings.

It would make more sense to check the button’s state when destroying each cube. Or else you have to loop through all created cubes and set red to true on each when you press the buttton.