/// <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; }