> For the complete documentation index, see [llms.txt](https://kdoore.gitbook.io/cs2335/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kdoore.gitbook.io/cs2335/project-2-dialog/hideshow-panel-script.md).

# Hide\_Show\_Panel Script

## CanvasGroup Component to hide UI elements

The following script can be put on any UI gameObject to control whether it is hidden when the scene starts.&#x20;

In Project2, we'll use this script on panel associated with scene dialog. \
With this attached script will be hidden when the scene is initially loaded.

This script can be used on the OptionPanel which controls buttons for changing scenes. A checkbox in the inspector provides an option to have the panel start in open state when the scene loads.

![](/files/-MK_NBqMTSvjq36gm1Lq)

**The Panel must have a CanvasGroup Component.**&#x20;

When working with [SimpleDialog](https://github.com/kdoore/cs2335_v2/tree/e629ce99d3c4e27e0dc9a8b416a206a1d7051d22/simple-dialog-prefab.md), or [DialogManager](/cs2335/project-2-dialog/dialogmanagerconvlist.md), the OptionPanel should be set as the Next Panel To Open in the SimpleDialog or DialogManager script.

```java
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Hide_Show_Panel : MonoBehaviour
{

    CanvasGroup panelCG; //must be on same gameObject as this script

    public bool showOnStart = false; //default is hidden
    public Button closeButton; //clicking will hide
    public Button openButton; //clicking will show
    public CanvasGroup nextPanelToOpen;

    // Use this for initialization
    void Start()
    {
        panelCG = GetComponent<CanvasGroup>(); //must have CanvasGroup component

        if (!showOnStart)
        {
            HidePanel(); //hide at start
        }
        else
        {
            ShowPanel(); //show at start
        }
        //if buttons are set in inspector, configure to open/close panel 
        if (closeButton != null)
        {
            closeButton.onClick.AddListener(HidePanel);
        }
        if (openButton != null)
        {
            closeButton.onClick.AddListener(ShowPanel);
        }

    }

    public void ShowPanel()
    {
        Utility.ShowCG(panelCG);
    }

    public void HidePanel()
    {
        Utility.HideCG(panelCG);
    }

    public void OpenNextPanel()
    {
        if( nextPanelToOpen != null)
        {
            Utility.ShowCG(nextPanelToOpen);
        }
    }
}

```
