みなさん、こんにちは!SAT-BOXのツバメです。
今回はUnityの[SpriteMask]で画像をマスクする際に他の画像にもマスクの影響が出てしまう問題の対処方法についての紹介になります。
1.マスクの影響ってどういうものか?
今回は丸い画像を星型でマスクしたものを2つ用意しました。この2つの画像が重なる
とどうなるのか?
パッと見た感じ問題なさそうに見えますが、黄色の丸が赤色の丸よりも後ろに描画され
ているのに対して、黄色の星型のマスクは赤色の丸にも影響しています。また、赤色の
星型のマスクの後ろに黄色の丸が描画されていません。このような状態になってしまう
のは、マスクの設定が何もされておらず、マスクの対象となる画像全てにマスクの処理
が働いてしまっている為です。
2.対処法はどうすればいいのか?
「Sorting Group」という機能を使用すれば解決します!
丸画像と対応した星型のマスクを子にして、親に「Sorting Group」を設定するだけで
す。(「Sorting Group」の設定は初期値で問題ありません)
「Sorting Group」を設定すると上の画像のように正しく描画されるようになりました!
マスク自体の設定をしておかないと、思わぬところで正しく描画されない状態になって
しまいますので、マスクを使用する場合は「Sorting Group」で管理しておいた方がいい
かもしれないです。
今回はマスクを使用する際に他の画像に影響が出ないようにする方法の紹介のため、
「Sorting Group」の詳しい説明は省略させて頂きましたが、また記事にしてご紹介させ
て頂こうと思います!以上、ツバメでした!