ボアブログ

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

ゲームジャムに参加しました。

unityroomunity1weeksというゲームジャムに参加しました。 お題は「跳ねる」で月曜から本日(日曜)の20時までにアップロードする、という流れです。

ちなみに完成品がこちら。 HaneShoot | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 見ればわかりますがかなりシンプルなゲームです。

このゲームジャムに参加するに至った経緯ですが

こちらのツイートを見て存在を知りました。このツイートが本日の15時56分。 この時私は外出中(帰宅中)でした。

この時点で残り時間が約4時間。家に付くまでに30分程度。 つまり3時間半ほどの時間があることに気付いたのです。 僕は思いました。

3時間半もあるじゃん

こんな感じで参加を決めたわけです。 その3時間半でやったことをまとめていこうと思います。

続きを読む

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