C# How do I reference a variable from one script in another script

Okay, so I’m a total C# newbie. I’m trying to make a script that checks to see if multiple torches are burning, if they are then the door can open. So here is my code so far:

public class TorchType : MonoBehaviour {
	public bool flameOn = false;
	public string torchType = "A";
	private void OpenThatDoor(){
		if (flameOn == true)
			GameObject.FindGameObjectsWithTag("Door");
			if (torchType == doorType)		
			doorCount++;
	}

then the next part is

public class DoorType : MonoBehaviour {
	public string doorType = "A";
	public int doorCount = 0;
	public int torchMax = 3;

	void Update () {
		if (doorCount == torchMax)
			//move door up
			
			;

okay so I’m trying to make it so that door count and the string doorType can be accessed in the first script.

How do I do this? Help!
Thanks in advance!

Instead of using strings to tag the ‘torchType’ and the ‘doorType’, why don’t you directly link the torches to each door?

So, in your ‘DoorType’ script, add a variable that looks like this:

public TorchType[] torches;

This will give you a dropdown list in the inspector, that you can drag individual torches on to.

Then, in your door script’s Update function, do this:

bool shouldOpen = true; // This will be the final value that we check
                        // Innocent until proven guilty!
foreach(TorchType torch in torches) { // This executes the block of code once
                                      // 'for each' torch in the array 'torches'
    // the object 'torch' refers to the current torch that we are operating on

    shouldOpen = shouldOpen && torch.flameOn; // shouldOpen will become 'false'
                                              // if a torch is off
}
if(shouldOpen) {
    // Open the door!
}

Then on your individual TorchType objects, you can determine whether a torch is on or off however you choose.

you can just have a variable of torches in your door script and set them in editor and at runtime check them like this
public TorchType torches;

public bool IsOpenable
{
get
{
//Check all torches to see if they are flaming or not.
foreach(var torch in torches)
{
//If a torch is turned off so door can not be opened
if(!torch.flamOn)
return false;
}
//If all torches were on so we can return true and allow being opened.
return true;
}
}