窗口由小变大

来源:互联网 发布:中国广播电视网络 官网 编辑:程序博客网 时间:2024/05/01 23:52

public class GlobalInit : MonoBehaviour {

    public static GlobalInit instance;

    public AnimationCurve animationCurve = new AnimationCurve(new Keyframe(0f, 0f, 0f, 1f), new Keyframe(1f, 1f, 1f, 0f));

void Start () {

        instance = this;

        DontDestroyOnLoad(gameObject);

}

}

/// <summary>

    /// 打开关闭窗口

    /// </summary>

    /// <param name="go"></param>

    /// <param name="isOpen"></param>

    void OpenWindow(GameObject go, bool isOpen)

    {

        if (isOpen)

        {

            NGUITools.SetActive(go, true);

            ShowToBig(go, true);

        }

        else

        {

            DestoryWindow(go);

        }

    }

    /// <summary>

    ///  销毁窗口

    /// </summary>

    /// <param name="go"></param>

    void DestoryWindow(GameObject go)

    {

        GameObject.Destroy(go);

    }

    /// <summary>

    /// 窗口由小变大

    /// </summary>

    /// <param name="go"></param>

    /// <param name="isOpen"></param>

    void ShowToBig(GameObject go, bool isOpen)

    {

        TweenScale ts = go.GetComponent<TweenScale>();

        if (ts == null)

        {

            ts=go.AddComponent<TweenScale>();

            ts.animationCurve = GlobalInit.instance.animationCurve;

        }

        ts.from = Vector3.zero;

        ts.to = Vector3.one;

        ts.duration = 5f;

        ts.SetOnFinished(() =>

        {

            if (!isOpen)

            {

                DestoryWindow(go);

            }

        });

        NGUITools.SetActive(go, true);

        if (!isOpen)

        {

            ts.Play(isOpen);

        }

 

    }

0 0