ボアブログ

へっぽこUnityエンジニアの色々

【Unity】画面の比率を固定にする

書きかけの記事が消えたので悲しいので簡単に終わらせます。 目的は表題の用に「画面比率を固定にした画面づくり」です。

カメラの仕様と対処

 私はUnityのカメラの比率を固定する方法を知らない。表示サイズによって横に広がったりとかするものだと思っている。ただそれだと視覚的情報が増えるわけでユーザーに有利不利が発生してしまう可能性がある。

RenderTexture

 そこでやるべきことは単純である。表示比率を固定にしてやればいいのだ。はみ出した部分はよくある黒で塗りつぶそう。先程は出来ないと行ったがそれはカメラの設定でと言う話だ。道はいくらでもある。今回はRenderTextureと言うものをつかう。

 Project内にRenderTextureを作る。そしてカメラのTargetTextureに付ける。そうするとカメラの描画先がゲームシーンからRenderTextureになる。Gameシーンにかかれている事は一旦無視して良い。    下図を元に説明する。スクショの左下には現在のRenderTextureが写り込んでいる。Gameビューで操作するとRenderTexture内のキャラが動いているのがお分かりいただけるだろう。 f:id:weakboar:20170312054719g:plain

RenderTextureをカメラに映す

 さくっと終わるほう法でやりたい。

  1. カメラを作る。SolidColorとかで良いだろう。
  2. 作ったカメラの下にCanvasを作る。
  3. CanvasのInspectorからScreenMathchModeを探しExpandに変更する。
  4. CanvsのRenderModeをCamera、RenderCameraを親のカメラにする。
  5. Canvasの下にRawImageを作りTextureの所にRenderTextureをいれる。ついでにMaterialも適当に作って入れておく

これだけでRenderTextureをカメラに移せる。しかも比率は固定だ!!すごーい! 余った箇所は黒くするとかレターボックス作って黒の塗りつぶしになるように作るとかやっておけばいいと思います!!!