強火で進め

このブログではプログラム関連の記事を中心に書いてます。

【Unity】 Sprite の 9-slicing

動作検証環境

  • Unity 2022.2.0f1

はじめに

9-slicing は 9-patch とも呼ばれる事もある、画像の歪みを防ぎながら画像を拡大や縮小する手法の事です。

準備する画像

Sprite に使用する画像(テクスチャ)は 9-slicing に対応したものを準備する必要が有ります。

9-slicing 画像は9のブロックに分かれ、それぞれのブロックで以下の様なスケーリングが行われます。その為、このルールに合わせた画像を準備する必要が有ります。

  • 四隅(A/C/G/I)サイズ変更は行われない。
  • B/H 水平に拡縮されるか並べて表示。
  • D/F 垂直に拡縮されるか並べて表示。
  • E 水平と垂直方向に拡縮されるか並べて表示。

画像の設定

9-slicing に対応した画像を準備し、 画像の Inspector で Mesh TypeFull Rect に変更後、 Sprite Editor ボタンを押します。

緑色のラインが9のブロックの境界を表しているので以下の様に設定し、 Apply を押します。

Sprite の設定

9-slicing の設定を行った画像をシーンに追加し、 Inspector で Sprite Renderer の Draw ModeSliced に設定します。 これで全ての設定が完了です。拡縮した時に以下の様な描画がされる様になります。

なお、 Draw ModeTiled に設定した場合にはこの様な描画となります。

注意点

9-slicing が適用されるのは Sprite の「サイズの変更」を行った時です。「スケールの変更」を行った時には適用されないので注意して下さい。

矢印位置のアイコンが選択され、四隅に青の丸が出ている時は「サイズの変更」です。

先端が四角になっている線が出ている時は「スケールの変更」が行われます。

関連サイト

公式の 9-slicing についてのドキュメント。

docs.unity3d.com