久しぶりの更新となります。
今回はUnityで直面した問題について書いていこうと思います。

私の持っている古い端末だとLolipopもMushroomMarshmallow(完全に勘違いしてました…)も試すことができないので、OSのサポートがされているNexus 5を購入することにしました。
本日届いたため、早速動作確認をしてみました。

まず、Android 5.1で動作確認を行ったところ特に問題なく動きました。

次に、Android 6.0にアップデートして、こちらも特に問題なく起動…と思ったら、どうも様子が変です。
以下の図のように、本来は円形のマスクが設定されているのですが、マスクが効かず四角になってしまっています。

unity_mask_disable


設定やマスクの指定方法が間違っているのかと思い確認してみましたが、原因がわかりません。

そこで、以下のように新規プロジェクトにマスクするためのオブジェクトと画像だけを置いて試すことにしました。
画像はroom6のここっとダンジョン(予約受付中 iOS / Android)より。

unity_mask_editor

ビルドしてNexus 5の実機に転送してみると…

Screenshot_20151129-205429

見事にマスクが効いていません。

仕方ないので色々調べてみると、以下のトピックがヒットしました。

Unity 5 UI Mask issues Android : stack overflow

 I searched a long time for the answer to this but I fixed this problem in Unity 5 by unchecking the "Disable Depth and Stencil*" Box.

Build Settings -> Player Settings -> Resolution and Presentation -> Disable Depth and Stencil

After that you need to re-launch unity (you will not see working mask if you dont) 
ということで、Project SettingでDisabel Depth and Stencilのチェックを外せばいいようです。

unity_mask_depth
 
再度書き出して実行してみます。

Screenshot_20151129-210039
 
今度はきちんとマスクが有効になっています…!

制作中のアプリもこの通り。

Screenshot_20151129-210422


円形のマスクが有効になっていますね。

原因は私にはよくわかりませんが、5.1の時は確実に問題がなかったことが確かで、stack overflowの別のトピックでも、Nexus 5でマスクが有効にならないと報告している人がいました。
確かそのトピックではUnity 5.1.4だと問題なく動作するとかなんとか…。

端末の問題か、Android 6.0の問題か、Unityのバージョンの問題かよくわかりませんが、もしマスクが有効にならない時は一度お試しいただくといいかもしれません。
なお、2DRectMaskは問題なく動作していました。

また、今回の副産物ですが、Unityのエディタ上でメインカメラを設定し直したところ、Gameウィンドウでマスクが効かなくなる現象が発生しました。
これについてはGameタブをCloseしてから再度開いたところ、無事に反映されました。
もしかしたらUnityを再起動でもよかったのかもしれませんが(^_^;)

というわけで、現在作成中のゲームはワーズ・アンド・マジックで実現出来なかったことを全部詰め込む予定です。
面白いものになるように がんばります!