この記事でのバージョン
Unity 5.5.1f1
はじめに
今回はSpriteRendererで9Sliceをしてみようという記事です。
以下はイメージで、左がそのままスケールしたもの、右が9Sliceしてスケールしたものです。
![]() |
使用している画像は以下のものです。
![]() |
Mobile Scifi GUI | 2D GUI | Unity Asset Store |
なお、Unity5.6で追加される(されている?)公式のものではありませんのであしからず。
9スライスとは
そもそも9スライスとは、以下のように画像を9分割し、分割した領域毎に拡大するといったものです。
![]() |
例えば左上の領域は拡大をせず、真ん中上の領域は左右にのみ拡大をするといった感じです。
なお、uGUIでは既に公式で対応されています。
NineSlicedShader
前述の通り、Unity 5.5時点では公式でSpriteRendererの9Sliceは対応されていないので、
今回は以下の記事のシェーダーをお借りして実装してみます。
ページ下部にあるRickshao/NineSlicedShaderをコピペして、シェーダーを作成、
さらに以下のNineSlicedProvider.csを作成。
このNineSlicedProviderを
9SliceしたいSpriteRendererが付いているオブジェクトにAddすればOKです。
なお、Materialが自動的に置き換わるので注意が必要です。
![]() |
また、SpriteModeがMultipleの画像には対応していませんので、あしからず。
![]() |
![]() |