Unity 2Dゲーム作成 備忘録

Unity(2019.4.15f1 → 2020.3.11f1)でつまづいたところをメモしていきます。

本来の画像サイズのまま、画像を配置する方法

私は2Dのゲームを作成していますので、Unityのプロジェクトを新規作成する際、「2D」を選んでいます。また、PC用ゲームをメインに考えていますので、ゲームの画面サイズも固定しています。
Unityを始める際に参考にしたサイトでは960×540をオススメされていたので、私も960×540で作成することにしました。

さて、私は、960×540の画面の中に、100×100の画像を、100×100のサイズで配置する必要が出てきました。

「普通に配置すれば、できるんじゃないの?2Dなんだし」

そう思う人は多いと思います。私もそう思いました。
しかし…Unityはそれを許してはくれません。
普通に読み込んでゲームオブジェクトにすると、なんだかすごく小さい…。

「え…ちっさ!何コレ?」

適当に拡大しようにも、現在のサイズがわからないため、何倍に拡大していいのかわかりません。

私は思いました。
「そうだ!2DのくせにZ軸(奥行き)の概念があるからに違いない!
 きっと、めっちゃ遠くに配置されてしまったんだ!」
しかし、これは答えではありませんでした。
いくらZ軸を触ったところで直りません。

さて、100×100の画像を配置したのに、なぜUnityは100×100で表示してくれないのでしょうか?

答えは…

Unity(2D)は、「ユニット」という単位で画面を構成していたからです。
いや〜ビックリ。
そう言われたら、そんな説明を最初の方にチラッと読んだ気もするけど、それがここで活きてくるとはね…!

つまり、1ユニットの設定が10×10ピクセルなのか、50×50ピクセルなのかで、配置された画像の大きさが変わってしまうという仕組みだったのです。

ユニットって何?と思われた方は、Unityの「シーン」を見てみてください。
そこに、うっすらマス目が引かれていると思います。
この1マスが1ユニットです。

対処方法

(1)ヒエラルキーから「Main Camera」を選択し、インスペクターの「Camera」の「サイズ」を確認します。このとき、サイズにこだわりがない場合は、あとの計算が楽なので「5」に変えてしまってもいいと思います。

f:id:ooo_washi:20210109221527p:plain

(2)(1)を元に、1ユニットが何×何ピクセルになっているのか算出します。
「Camera」の「サイズ」は、「シーン」上のマス目の数を設定するものになります。
「5」の場合は、画面の中心から上方向に5マス、下方向に5マスの、合計10マス、マス目を設定することを意味しています。(ちなみに、横方向は成り行きとなります。)
この数で、設定したゲーム画面の縦サイズを割れば、1ユニットが何×何ピクセルなのかがわかります。
(私の場合は、ゲーム画面の縦のサイズが540ピクセルなので、540px ÷(5マス×2)で、1ユニットが54×54ピクセルであることがわかります。)

(3)アセットから、あらかじめ読み込んでおいた画像を選択し、インスペクターの「インポート設定」の「ユニット毎のピクセル数」を、(2)で算出した数に書き換えます。(画像は複数選択して一気に変えることもできます。)あとは、「適用する」を押して完了です。

f:id:ooo_washi:20210109224745p:plain

 

これで、100×100ピクセルの画像を、100×100ピクセルで配置できるようになりました。