/// <summary>
    /// 开始
    /// </summary>
    private bool Begin()
    {
        if (Selection.transforms == null ||
            Selection.transforms.Length <= 0)
        {
            EditorUtility.DisplayDialog("提示", "没有选中物体", "确定");
            return(false);
        }

        List <SpriteRenderer> sprites = new List <SpriteRenderer>();

        foreach (Transform tf in Selection.transforms)
        {
            sprites.AddRange(tf.GetComponentsInChildren <SpriteRenderer>());
        }

        if (sprites.Count <= 0)
        {
            EditorUtility.DisplayDialog("提示", "没有选中场景", "确定");
            return(false);
        }

#if OLD
        sprites.Sort(SortCmp);
#else
        SortSpriteRender(sprites);
#endif

        m_listSceneItem.Clear();

        float fZ              = sprites[0].transform.position.z;
        int   sceneItemCnt    = 0;
        int   curSceneCellCnt = 0;

        SceneItem sceneItem = new SceneItem();
        m_listSceneItem.Add(sceneItem);

        SceneCell sceneCell = new SceneCell();
        sceneCell.m_tfTransform = sprites[0].transform;
        sceneCell.m_vtPosition  = sprites[0].transform.position;
        sceneCell.m_vtSize      = sprites[0].sprite.bounds.size;

        m_listSceneItem[sceneItemCnt].m_listSceneCells.Add(sceneCell);

        for (int i = 1, imax = sprites.Count; i < imax; i++)
        {
            sceneCell = new SceneCell();
            sceneCell.m_tfTransform  = sprites[i].transform;
            sceneCell.m_vtPosition   = sprites[i].transform.position;
            sceneCell.m_vtSize       = sprites[i].sprite.bounds.size;
            sceneCell.m_vtPosition.z = fZ;

            if (Mathf.Abs(sceneCell.m_vtPosition.x - m_listSceneItem[sceneItemCnt].m_listSceneCells[curSceneCellCnt].m_vtPosition.x) < EPS)
            {
                m_listSceneItem[sceneItemCnt].m_listSceneCells.Add(sceneCell);
                curSceneCellCnt++;
            }
            else
            {
                sceneItem = new SceneItem();
                sceneItem.m_listSceneCells.Add(sceneCell);
                curSceneCellCnt = 0;

                m_listSceneItem.Add(sceneItem);
                sceneItemCnt++;
            }
        }

        return(true);
    }
    /// <summary>
    /// 开始
    /// </summary>
    private bool Begin()
    {
        if (Selection.transforms == null
            || Selection.transforms.Length <= 0)
        {
            EditorUtility.DisplayDialog("提示", "没有选中物体", "确定");
            return false;
        }

        List<SpriteRenderer> sprites = new List<SpriteRenderer>();

        foreach (Transform tf in Selection.transforms)
        {
            sprites.AddRange(tf.GetComponentsInChildren<SpriteRenderer>());
        }

        if (sprites.Count <= 0)
        {
            EditorUtility.DisplayDialog("提示", "没有选中场景", "确定");
            return false;
        }

#if OLD
        sprites.Sort(SortCmp);
#else
        SortSpriteRender(sprites);
#endif

        m_listSceneItem.Clear();

        float fZ = sprites[0].transform.position.z;
        int sceneItemCnt = 0;
        int curSceneCellCnt = 0;

        SceneItem sceneItem = new SceneItem();
        m_listSceneItem.Add(sceneItem);

        SceneCell sceneCell = new SceneCell();
        sceneCell.m_tfTransform = sprites[0].transform;
        sceneCell.m_vtPosition = sprites[0].transform.position;
        sceneCell.m_vtSize = sprites[0].sprite.bounds.size;

        m_listSceneItem[sceneItemCnt].m_listSceneCells.Add(sceneCell);

        for (int i = 1, imax = sprites.Count; i < imax; i++)
        {
            sceneCell = new SceneCell();
            sceneCell.m_tfTransform = sprites[i].transform;
            sceneCell.m_vtPosition = sprites[i].transform.position;
            sceneCell.m_vtSize = sprites[i].sprite.bounds.size;
            sceneCell.m_vtPosition.z = fZ;

            if (Mathf.Abs(sceneCell.m_vtPosition.x - m_listSceneItem[sceneItemCnt].m_listSceneCells[curSceneCellCnt].m_vtPosition.x) < EPS)
            {
                m_listSceneItem[sceneItemCnt].m_listSceneCells.Add(sceneCell);
                curSceneCellCnt++;
            }
            else
            {
                sceneItem = new SceneItem();
                sceneItem.m_listSceneCells.Add(sceneCell);
                curSceneCellCnt = 0;

                m_listSceneItem.Add(sceneItem);
                sceneItemCnt++;
            }
        }

        return true;
    }