Skip to content

A Unity package for handling advanced 25-slice sprites.

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta
Notifications You must be signed in to change notification settings

kwan3854/TwentyFiveSlicer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Announcing N-Slicer: The Evolution of TwentyFiveSlicer

πŸ“’ New Release: Beyond the open-source spirit of TwentyFiveSlicer, this enhanced solution is now available on the Unity Asset Store!

N-Slicer is the next-generation sprite slicing solution, representing the technological advancement of TwentyFiveSlicer!

n-slicer

n-slicer

While TwentyFiveSlicer evolved from 9-slice to 25-slice, N-Slicer takes it to the next level with unlimited customizable slices. Each slice can be individually configured as Fixed or Stretchable, enabling more sophisticated UI implementations.


Twenty Five Slicer

openupm

Twenty Five Slicer is a Unity package designed for more advanced sprite slicing, enabling a "25-slice" approach. It divides a sprite into a 5x5 grid, allowing precise scaling and manipulation of individual regions while preserving key areas.


9-slice vs 25-slice

9-slice vs 25-slice


Key Concept

25-slice Debugging View

  • 9 slices: Non-stretchable areas.
  • 6 slices: Stretch horizontally only.
  • 6 slices: Stretch vertically only.
  • 4 slices: Stretch in both directions.

This allows for far more detailed slicing. Where traditional 9-slice images often require stacking multiple image layers to achieve complex UI shapes (e.g., speech bubbles, boxes with icons or separators at the center), a 25-slice configuration can often handle these scenarios with just a single image.


Installing the Package

1. Install via OpenUPM

1.1. Install via Package Manager

Please follow the instructions:

  1. Open Edit β†’ Project Settings β†’ Package Manager
  2. Add a new Scoped Registry (or edit the existing OpenUPM entry)
  • Name: package.openupm.com
  • URL: https://package.openupm.com
  1. Click Save or Apply
  2. Open Window β†’ Package Manager
  3. Click the + button
  4. Select Add package by name... (or Add package from git URL...)
  5. Paste com.kwanjoong.twentyfiveslicer into Name
  6. Paste a version (e.g., 1.1.2) into Version
  7. Click Add

1.2. Alternatively, merge the snippet into Packages/manifest.json

{
  "scopedRegistries": [
    {
      "name": "package.openupm.com",
      "url": "https://package.openupm.com",
      "scopes": []
    }
  ],
  "dependencies": {
    "com.kwanjoong.twentyfiveslicer": "1.1.2"
  }
}

1.3. Install via command-line interface

openupm add com.kwanjoong.twentyfiveslicer

2. Install via Git URL

  1. Open the Unity Package Manager.
  2. Select Add package from Git URL.
  3. Enter: https://github.com/kwan3854/twentyfiveslicer.git
  4. To install a specific version, append a version tag, for example:
    https://github.com/kwan3854/twentyfiveslicer.git#v1.0.0

How to Use

Create Slice Data Map (First-time Setup)

  1. Navigate to the Assets/Resources folder. (Create it if it doesn't exist.)
  2. Right-click β†’ Create β†’ TwentyFiveSlicer β†’ SliceDataMap

How to Add 25-slice DataMap SliceDataMap Example


Editing a Sprite

  1. Open the 25-Slice Editor
  • Window β†’ 2D β†’ 25-Slice Editor

How to Open 25-Slice Editor

  1. Load Your Sprite
  • Drag and drop your sprite into the editor or select it via the provided field.
  1. Adjust the Slices
  • Use the sliders to define horizontal and vertical cut lines, dividing the sprite into 25 sections.
  • Borders are displayed visually for accurate adjustments.

25-Slice Editor

  1. Save the Configuration
  • Click Save Borders to store the 25-slice settings.

Using the 25-Sliced Sprite

1. Using with UI (TwentyFiveSliceImage)

This is the UI approach, similar to UnityEngine.UI.Image:

  1. Create a TwentyFiveSliceImage GameObject or add TwentyFiveSliceImage to an existing UI element in a Canvas.
  2. Assign your 25-sliced sprite to the TwentyFiveSliceImage.
  3. Adjust the RectTransform size to see how each slice region scales or remains fixed.

How to Add 25-Slice GameObject

How to Add 25-Slice GameObject

2. Using with 2D Scenes (TwentyFiveSliceSpriteRenderer)

This is the MeshRenderer-based approach, similar to SpriteRenderer:

  1. You can create a 25-Sliced Sprite in the Hierarchy:
  • Right-click β†’ 2D Object β†’ Sprites β†’ 25-Sliced
    This will instantiate a GameObject named 25-Sliced Sprite with TwentyFiveSliceSpriteRenderer attached.
  1. In the Inspector, assign your 25-sliced sprite to its Sprite field.
  2. Adjust the Size property in the Inspector (instead of using transform.localScale) to properly stretch or preserve corners/edges as needed.
  3. Sorting Layer and Order in Layer are also available, just like a normal SpriteRenderer.

How to Add 25-Slice GameObject

How to Add 25-Slice GameObject


Key Features

  • Divide sprites into a 5x5 grid for highly detailed control.
  • Seamlessly scale and stretch specific sprite regions.
  • UI approach (TwentyFiveSliceImage) for usage in UGUI-based canvases.
  • 2D Mesh approach (TwentyFiveSliceSpriteRenderer) for usage in 2D scenes without UI.
  • Compatible with Unity's 2D workflow, supports Sorting Layers.
  • Intuitive editor window with clear visual guidance for precise adjustments.

Delete Unused Data

You can remove slice data that is no longer needed: Tools β†’ Twenty Five Slicer Tools β†’ Slice Data Cleaner


For more information or contributions, visit the repository.

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •  

Languages