The problem is inside the public int GetnoOfSwitch, Using for loop isit correct?
[SerializeField]
GameObject[] switches;
[SerializeField]
GameObject doorselect;
int noOfSwitches;
// Start is called before the first frame update
private void Start()
{
GetNoOfSwitch();
}
public int GetNoOfSwitch()
{
for (int i = 0; i < switches.Length; i++)
{
if (switches[i].GetComponent<Switch>().isOn == false)
{
noOfSwitches = 0;
}
else if (switches[i].GetComponent<Switch>().isOn == true)
{
noOfSwitches =+1;
}
}
return noOfSwitches;
}
public void GetDoorState()
{
if (GetNoOfSwitch() == switches.Length)
{
doorselect.GetComponent<Door>().Dooropen();
}
else if (GetNoOfSwitch() != switches.Length)
{
doorselect.GetComponent<Door>().Doorclose();
}
}
private void Update()
{
GetDoorState();
Debug.Log(GetNoOfSwitch());
}