需要组件:Panel、Sprite、Label、BoxCollider以及自定义的PopupWindowHandle.cs脚本组件。
实现方法:
1.制作按钮,用来控制弹窗
1)添加一个Sprite,命名为PopupWindowBtn,向其添加BoxCollider组件,以及PopupWindowHandle脚本组件,并为其添加子对象Label,以此设置其按钮上显示的名称。
2)PopupWindowHandle.cs代码如下:

usingUnityEngine;
using System.Collections;
publicclass PopupWindowHandle : MonoBehaviour {
    //需要弹出的面板GameObject
    public GameObject windowPanel;
    //用来控制弹出的按钮GameObject
    public GameObject btnLabelGO;
    //控制面板弹出弹回所用的时间
    public float duration;
    //判断面板当前弹出状态
    private bool isOpened = false;
    //获得按钮的Label
    private UILabel btnLabel;
    void Start()
    {
        //设置面板初始大小缩小至0
        windowPanel.transform.localScale =Vector3.zero;
        //获得按钮的Label,以便于对应面板不同的状态,显示不同的提示
        btnLabel = btnLabelGO.transform.GetComponent<UILabel>();
    }
    public void PopupBtnOnClick()
    {
        //如果面板处于弹出状态
        if(isOpened)
        {
            //设置面板大小缩小至0
            TweenScale.Begin(windowPanel,duration, Vector3.zero);
            //设置面板透明度至0
            TweenAlpha.Begin(windowPanel,duration, 0);
            //设置按钮的Label为"Open"
            btnLabel.text = "Open";
        }
        else //如果面板处于隐藏状态
        {
             //设置面板大小放大至1
             TweenScale.Begin(windowPanel,duration, Vector3.one);
             //设置面板透明度至1
             TweenAlpha.Begin(windowPanel,duration, 1);
             //设置按钮的Label为"Close"
             btnLabel.text = "Close";
        }
        //每次按下按钮反置面板的弹出状态
        isOpened = !isOpened;
    }
}

3)设置按钮Inspector如图1所示:                            

2.制作面板,用来展示弹窗的弹出及隐藏
1)添加Panel
2)在Panel添加自定义的背景或者文字,此处为了显示效果,展示简单添加了一个Sprite和Label
3.Hierarchy面板的截图如图2所示。                              

4.运行后场景中截图如图3所示。                              

5.效果实现。