UnityでiOSやAndroid向けのアプリを作る際に、バラバラのアスペクト比を吸収するための実装メモです。
GUIの実装では定番のNGUIを使用しています。
NGUI ($95)
https://www.assetstore.unity3d.com/#/content/2413
実装時のバージョンはUnity3.5.6、NGUIのバージョンは2.2.6Cです。
NGUIで作った画面のアス比を固定する方法は、以下ウダサンコウボウさんのスクリプトを使わせてもらっています。
[Unity]NGUIで画面サイズに合わせる(NGUI2.2.2対応版)
http://udasankoubou.blogspot.jp/2012/10/unitynguingui222.html
ただし、これだけではウィジェットを領域外に移動させたり、別に3Dカメラがあったりすると描画領域外のスペースにオブジェクトが映り込んでしまいます。
対応方法は色々あると思うのですが、今回は最前面にレターボックス専用のパネルを配置して塗りつぶします。

こんな感じで黒枠パネルを最前面に。
これで横に伸びても縦に伸びてもアス比固定のままで領域外はレターボックスで塗りつぶせました。


動かないパネルなので、Staticにチェックを入れると負荷が下がります。
設定箇所は以下、Inspectorの四角部分です。

GUIの実装では定番のNGUIを使用しています。
NGUI ($95)
https://www.assetstore.unity3d.com/#/content/2413
実装時のバージョンはUnity3.5.6、NGUIのバージョンは2.2.6Cです。
NGUIで作った画面のアス比を固定する方法は、以下ウダサンコウボウさんのスクリプトを使わせてもらっています。
[Unity]NGUIで画面サイズに合わせる(NGUI2.2.2対応版)
http://udasankoubou.blogspot.jp/2012/10/unitynguingui222.html
ただし、これだけではウィジェットを領域外に移動させたり、別に3Dカメラがあったりすると描画領域外のスペースにオブジェクトが映り込んでしまいます。
対応方法は色々あると思うのですが、今回は最前面にレターボックス専用のパネルを配置して塗りつぶします。

こんな感じで黒枠パネルを最前面に。
これで横に伸びても縦に伸びてもアス比固定のままで領域外はレターボックスで塗りつぶせました。


動かないパネルなので、Staticにチェックを入れると負荷が下がります。
設定箇所は以下、Inspectorの四角部分です。
