private void AddSprite(Rect frame, int alignment, Vector2 pivot, SpriteFrameModule.AutoSlicingMethod slicingMethod, ref int index) { if (slicingMethod != SpriteFrameModule.AutoSlicingMethod.DeleteAll) { SpriteRect existingOverlappingSprite = this.GetExistingOverlappingSprite(frame); if (existingOverlappingSprite != null) { if (slicingMethod == SpriteFrameModule.AutoSlicingMethod.Smart) { existingOverlappingSprite.rect = frame; existingOverlappingSprite.alignment = (SpriteAlignment)alignment; existingOverlappingSprite.pivot = pivot; } } else { this.AddSpriteWithUniqueName(frame, alignment, pivot, 254, 0.25f, index++); } } else { this.AddSprite(frame, alignment, pivot, 254, 0.25f, this.GetSpriteNamePrefix() + "_" + index++); } }
public void DoAutomaticSlicing(int minimumSpriteSize, int alignment, Vector2 pivot, SpriteFrameModule.AutoSlicingMethod slicingMethod) { base.undoSystem.RegisterCompleteObjectUndo(this.m_RectsCache, "Automatic Slicing"); if (slicingMethod == SpriteFrameModule.AutoSlicingMethod.DeleteAll) { this.m_RectsCache.spriteRects.Clear(); } UnityEngine.Texture2D readableTexture2D = this.m_TextureDataProvider.GetReadableTexture2D(); List <Rect> list = new List <Rect>(InternalSpriteUtility.GenerateAutomaticSpriteRectangles(readableTexture2D, minimumSpriteSize, 0)); list = this.SortRects(list); int num = 0; foreach (Rect current in list) { this.AddSprite(current, alignment, pivot, slicingMethod, ref num); } base.selected = null; base.spriteEditor.SetDataModified(); base.Repaint(); }