UHH GUYS!!!

what’s up everyone,

I starting to feel troubled hear as I have this 1600+ and counting panel activation/deactivation system I’ve been working on,

what I need it to do is:

Track what panels are active and change them when the user select a different button, thou the next part of what I’m looking to achieve haven’t come clear to me, incorporating a off/on method with it so when the user press the button again that panel goes off and the previous one’s reactivate,

I have it caching the last active panels thou I’m not sure how to switch it back, here it is any suggestions, thoughts, or what to do’s, also I feel that there is a much more clean approach to this am I wrong?
–Thank you
GRAND

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

public class PanelActiveManager : MonoBehaviour
{
    public bool selectedView;
    public bool SecondPress = false;
    public int mdpINT;
    public int ActivePanels;
    public int ActivePanelsIDN;
    [Header("Current Activated Panels")]
    public PanelActiveButton[] panels;
    [Header("Last activated")]
    public PanelActiveButton[] LastActivePanels;
    // updated panels
    [Header("case 1")]
    public PanelActiveButton[] MarketDefaultPanels;
    [Header("case 20")]
    public PanelActiveButton[] AfterMarketPanels;
    [Header("case 9")]
    public PanelActiveButton[] MarketManagerPanels;
    [Header("case 2")]
    public PanelActiveButton[] ShopPanels;
    [Header("case 7")]
    public PanelActiveButton[] TravelPanels;
    [Header("case 8")]
    public PanelActiveButton[] OverviewPanels;
    [Header("case 3")]
    public PanelActiveButton[] ActionPanels;
    [Header("case 4")]
    public PanelActiveButton[] ActionManagerPanels;
    [Header("case 5")]
    public PanelActiveButton[] marketPricelistPanels;
    [Header("case 10")]
    public PanelActiveButton[] CopsPanels;
    [Header("case 11")]
    public PanelActiveButton[] RobbersPanels;
    [Header("case 12")]
    public PanelActiveButton[] NewsPanels;
    [Header("case 6")]
    public PanelActiveButton[] OptionsPanels;
    [Header("case 13")]
    public PanelActiveButton[] CharactersPanels;
    [Header("case 14")]
    public PanelActiveButton[] PropertyPanels;
    [Header("case 15")]
    public PanelActiveButton[] ItemsPanels;
    [Header("case 17")]
    public PanelActiveButton[] HeatHealthPanels;
    [Header("case 18")]
    public PanelActiveButton[] MoneyPanels;
    [Header("case 16")]
    public PanelActiveButton[] WordOnTheStreetsPanels;
    [Header("case 21")]
    public PanelActiveButton[] ActionButtonPanels;
    [Header("case 19")]
    public PanelActiveButton[] PhonePanels;
    [Header("case 22")]
    public PanelActiveButton[] BGPanels;

    public PanelActiveButton[] lpn;
    public PanelActiveButton[] cpn;

      void Awake ()
    { ////// takes in the active panels id number and assign it to activepanelsidn
        pINTm(1);
        actPan ();
    }

    public void pINTm (int pnl)
    { ////// takes in the active panels id number and assign it to activepanelsidn
        PanelChange(pnl);
    }
     void actPan ()
    { ////// takes in the active panels id number and assign it to activepanelsidn
        panels = GameObject.FindObjectsOfType (typeof(PanelActiveButton)) as PanelActiveButton[];
        LastActivePanels = panels;
    }
    void actPanSwitch ()
    { ////// takes in the active panels id number and assign it to activepanelsidn
        if(l != p){
            Debug.Log ("change ");
        }

        foreach (PanelActiveButton p in panels) {
            foreach (PanelActiveButton l in LastActivePanels) {
                //cpn = p;
                //lpn = l;

            }
        }
    }

    void Update ()
    { ////// takes in the active panels id number and assign it to activepanelsidn
        panels = GameObject.FindObjectsOfType (typeof(PanelActiveButton)) as PanelActiveButton[];

        ActivePanels = panels.Length;
    }
    // Update is called once per frame
    public void PanelChange(int pnlo)
    {
        ActivePanelsIDN = pnlo;

        switch (ActivePanelsIDN) {
        case 0://selected view called on no panles
                   
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Deactivate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Deactivate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
                    //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 1://market panels to get called on default panel
            actPan ();
            actPanSwitch ();
            Debug.Log ("Default panels active");
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Activate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Activate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Activate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Activate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 2://  shop panels to get called on
            actPan ();

            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Activate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Activate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Activate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Activate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 3://Actoin panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Activate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 4://Action Manager panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Activate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
       
        case 5://market pricelist panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Activate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
       
        case 6://Options panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Activate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 7://Travel panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Activate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Activate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 8://Overview panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Activate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 9://Market Manager panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Activate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 10://Cops panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Activate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 11://Robbers panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Activate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Deactivate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 12://News panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Activate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 13://Characters panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Activate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 14://Property panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Activate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 15://Items panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Activate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 16://WordOnTheStreets panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
       
        case 17://Heat Health panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 18://Money panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 19://Phone panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Activate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Deactivate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        case 20://aftermarket panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Activate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Activate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Activate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 21://action button panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Activate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Activate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Activate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Activate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;

        case 22://panel panels to get called on
            actPan ();
            foreach (PanelActiveButton amp in AfterMarketPanels) {
                amp.Deactivate ();
            }
            foreach (PanelActiveButton mmp in MarketManagerPanels) {
                mmp.Deactivate ();
            }
            foreach (PanelActiveButton tvlp in TravelPanels) {
                tvlp.Deactivate ();
            }
            foreach (PanelActiveButton cps in CopsPanels) {
                cps.Deactivate ();
            }
            foreach (PanelActiveButton rbp in RobbersPanels) {
                rbp.Deactivate ();
            }
            foreach (PanelActiveButton itmp in ItemsPanels) {
                itmp.Deactivate ();
            }
            foreach (PanelActiveButton optp in OptionsPanels) {
                optp.Deactivate ();
            }
            foreach (PanelActiveButton mnp in MoneyPanels) {
                mnp.Activate ();
            }
            foreach (PanelActiveButton abp in ActionButtonPanels) {
                abp.Deactivate ();
            }
            foreach (PanelActiveButton shp in ShopPanels) {
                shp.Deactivate ();
            }
            foreach (PanelActiveButton chp in CharactersPanels) {
                chp.Deactivate ();
            }
            foreach (PanelActiveButton prp in PropertyPanels) {
                prp.Deactivate ();
            }
            foreach (PanelActiveButton php in PhonePanels) {
                php.Deactivate ();
            }
            foreach (PanelActiveButton hhp in HeatHealthPanels) {
                hhp.Activate ();
            }
            foreach (PanelActiveButton np in NewsPanels) {
                np.Deactivate ();
            }
            foreach (PanelActiveButton wots in WordOnTheStreetsPanels) {
                wots.Deactivate ();
            }
            foreach (PanelActiveButton BGp in BGPanels) {
                BGp.Activate ();
            }
            foreach (PanelActiveButton ovp in OverviewPanels) {
                ovp.Deactivate ();
            }
            foreach (PanelActiveButton ap in ActionPanels) {
                ap.Deactivate ();
            }
            foreach (PanelActiveButton acp in ActionManagerPanels) {
                acp.Deactivate ();
            }
            foreach (PanelActiveButton mplp in marketPricelistPanels ) {
                mplp.Deactivate ();
            }
            //Debug.Log (p.GetComponent<PanelActiveButton>().PanelIDNUMBER+"Default panels active");
            break;
        }
    }
}

The fact you say you have 1600+ panels already concerns me. The fact you have tons of foreach statements, many of them duplicates also concerns me.

First I’d have to ask, what are you doing that would require so many panels?

Next, I’d also say if you really need this many panels, you’d at least be a little better off if you had one method that turned off all panels, and then another that maybe took a list of PanelActiveButton arrays that you would loop through and turn on. This would drastically reduce your code.

But, my first question stands on why you have so many panels? Once that is better understood, we can maybe make some better suggestions.

Also note. UHH GUYS! Is not a good title to have. At least give some info of your post or others may skip over it.

1 Like

Also, I’m not sure I understand the desired behavior. User presses panel A, that lights up. They press panel B; that lights up and panel A goes out. They press B again, and now B goes out and A lights up. Now the ornery user presses A, and …what? A goes out, and B lights up again?

I agree with @Brathnann , it would really help us to understand what you’re trying to accomplish here.

thanks for responding,

excuse the title I’m just getting worried here,

I want to activate different panels based on what OnScreen button was selected or what trigger happens as each panel don’t have a button that trigger it but a game instance instead,

im worried about the foreach as well, but each panel has a set of panels that suppose to be on the screen at a certain time, when the use select the button that represent that set, but i need it to go back to showing the previous set of panels if that button is pressed again like a on/off method,

this is the manage script I made, I made another script that utilize the on/off method but it dont track or it"s not “smart” it just work .

I ultimately need:

track active panel sets

switch panel sets

turn on/off pane sets that assigned to a button

Yes and it will show the background city view





thou it is cumbersome the panels are acting as they are suppose too, atm its just a one time deal thou,

I need them to work with the on/off method i have already or create a new way of getting them to work,

sorry if it seemed like 1600+ panels, 1600+ plus lines,

22 cases that i sort of made into panel sets, so in each case specifically certain panels will be displayed

@JoeStrout

nope it will show the city back drop, it will just trun that panel off

a/a - on/off method
a/b switch method

OK, I’m still not sure I get it.

If you’re really talking about a bunch of different panels, activated by a series of buttons, then the rules should be different from what you describe. I’d expect it to be:

  • at most one button can be active at a time (showing its corresponding panel);
  • tapping the selected button again turns it off (hiding the corresponding panel, and not activating something else).

In this case you hardly need any code at all; you can set this up using a ToggleGroup, containing a Toggle for each panel. Make sure the ToggleGroup has allowSwitchOff=true, and then you just need to hook a script up to the toggles via their onValueChanged event, that shows or hides the corresponding panel.

(You can make this script very short and generic by just giving it a public reference for the panel to show/hide, and then put one instance of this on each Toggle, and drag in the corresponding panel.)

1 Like

Thanks, and that just sound more efficient,

when you know what you know that’s all you can work with until you question am I doing this correctly and seek help and thus you’ve helped thank you,

now ill let it soak in and give it a try as I’m not too familiar with toggle groups and the OnValueChanged event process

If I’m mistaken, please correct. But it looks like you have static gui that never changes, but then you have this center part that does?

Why don’t you just have the center stuff all under one gameobject that you turn off/on? Then you don’t have to loop through groups trying to turn stuff on and off. It’s just one object that controls a group.

@JoeStrout may have the right idea if what he describe is what you are doing.

Now if you have several buttons and want to be able to swap between menus, thus closing any open menus before opening the new ones, then you can either track what panels are open, or you just simply close all panels before opening new ones.

Edit: And you replied before I did. :slight_smile: But hopefully his suggestion works for you.

Yes. This is essentially what ToggleGroup does: when you turn a toggle on, it turns all others off. You could do the same thing in your own code, if you just had a list of things to turn on/off.

yup, ok check this script it was the first it is a panel self checker but its not smart

also at some point or another through out the game different gui will be displayed,

thats why i need sets because

say for instance
set 1 have a,b,c
set 2 have x,y,z
set 3 have a,b,c,x

also is this video i found helpful

using UnityEngine;
using System.Collections;

public class PanelActiveButton : MonoBehaviour {
    public GameObject PanelActivationState;
    public int PanelIDNUMBER;
    public bool ON;
    public bool OFF;

    void Awake(){
      if(PanelActivationState.activeInHierarchy){
            ON = true;
            OFF = false;
        }else if(!PanelActivationState.activeInHierarchy){
            ON = false;
            OFF = true;
        }
    }
    public void Activate(){
        ON = true;
        OFF = false;
        PanelActivationState.SetActive(true);
    }
    public void Deactivate(){
            PanelActivationState.SetActive(false);
        ON = false;
        OFF = true;
    }
    public void CheckActive(){
        if(ON){
            PanelActivationState.SetActive(false);
            ON = false;
            OFF = true;
        }else if(OFF){
            PanelActivationState.SetActive(true);
            ON = true;
            OFF = false;
        }
    }

}

There is really no need for an on and an off bool. Is on is false, that means it’s off. If there are only two state, use a single bool.

You mean bool? Gotta watch out for that autocorrect… :slight_smile:

2 Likes

@Kiwasi sure thing thanks,

@JoeStrout , @Brathnann

so can I scrap the 1600+ line manager

go back to the PanelActiveButton short system, make it the manager,

incorporate the toggle group method

add int toggleGroupRequested // assign to button or instance in the inspector or in the created instance

change checkActive() to checkActive(int toggleGroup)

if(toggleGroupRequested == toggleGroup ){
ToggleGroug(toggleGroup).isOn = false; // for on/off

}else if(toggleGroupRequested != toggleGroup){
ToggleGroug(toggleGroup).isOn = true;
}

auto correct can be a problem, but I understood him thou.

Nice catch.

4am might not be the best time for me to be posting. :stuck_out_tongue: