質問: Unityでのモバイル開発におけるマルチ解像度対応について これまでNGUIを使用したモバイルアプリ開発に携わってきました。 最近、個人的な勉強のために、ネットの情報を元にしながら、NGUIを使用しない形で2Dアプリを作成しております。 uGUIについては、NGUIのUIRootのように自動スケーリングしてくれる機能が、Canvas系のコンポーネントにあったため、問題なく進めることができたのですが、SpriteRendererといったCanvasを使用しない(World空間に配置するもの?)は、どのようにマルチ解像度対応を行うのが一般的なのでしょうか? 例えば、Gameビューの画面サイズを640"1136に設定し、画面サイズぴったりの位置(上下左右)に壁を作っても、他の画面サイズによっては画面内に壁が配置されてしまうので、これらをどの解像度を使用した際にも、画面サイズぴったりに配置するようにするといった形です。 どんな小さな情報でも構いません。 何かご存知の方がいましたら、ご教示頂けますと幸いです。
回答: 自力で計算するしかないかと。 1. 基準となる解像度でオブジェクトを配置 2. 実際の解像度と基準解像度の差を求める 3. 求めた差に応じてオブジェクトの位置や大きさを調整 もしくは、「Camera.ScreenToWorldPoint(公式リファレンス)」などを駆使する形でしょうか。 (「右辺からnピクセル」とかならこっちの方が楽かと) 推測ですが、Unityの仕様として SpriteRenderer:マリオのような2Dゲームのフィールド用(カメラはフィールドの一部を映す) uGUI:GUI用(カメラに画像類が追随する) という想定なのだと思います。