名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

UnityのSpriteMaskが他の画像に影響する問題の対処法

みなさん、こんにちは!SAT-BOXのツバメです。

今回はUnityの[SpriteMask]で画像をマスクする際に他の画像にもマスクの影響が出てしう問題の対処方法についての紹介になります。

 

1.マスクの影響ってどういうものか?

f:id:sat-box:20200923082655p:plain

今回は丸い画像を星型でマスクしたものを2つ用意しました。この2つの画像が重なる

とどうなるのか?

f:id:sat-box:20200923082808p:plain

パッと見た感じ問題なさそうに見えますが、黄色の丸赤色の丸よりも後ろに描画され

ているのに対して、黄色の星型のマスク赤色の丸にも影響しています。また、赤色の

星型のマスクの後ろに黄色の丸が描画されていません。このような状態になってしまう

のは、マスクの設定が何もされておらず、マスクの対象となる画像全てにマスクの処理

が働いてしまっている為です。

 

2.対処法はどうすればいいのか?

「Sorting Group」という機能を使用すれば解決します!

f:id:sat-box:20200923083409p:plain

丸画像と対応した星型のマスクを子にして、親に「Sorting Group」を設定するだけで

す。(「Sorting Group」の設定は初期値で問題ありません)

f:id:sat-box:20200923083813p:plain

「Sorting Group」を設定すると上の画像のように正しく描画されるようになりました!

マスク自体の設定をしておかないと、思わぬところで正しく描画されない状態になって

しまいますので、マスクを使用する場合は「Sorting Group」で管理しておいた方がいい

かもしれないです。

 

今回はマスクを使用する際に他の画像に影響が出ないようにする方法の紹介のため、

「Sorting Group」の詳しい説明は省略させて頂きましたが、また記事にしてご紹介させ

て頂こうと思います!以上、ツバメでした!