Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Unity – Joystick Packの実行時の位置合わせ –

Unity – Joystickを使ってみる –」でJoystickは動かせたけど表示位置が予定の場所からズレてしまった。

いろいろいじっていて、下のようにしたら意図した通りの位置に表示されるようになった。

編集時のUnityのGame Windowでは下のように見えている。

以前はそれが崩れてしまっていたが、上のようにしたら直った。
下は、Nexus7で実行中のスクリーン・ショットだ。

適当に変更しているので、いったいどこをどう変えた結果そうなったのかが分からない。
Unityのマニュアルによれば、とりあえずここで作っているカメラ移動のないゲームではRender Modeの違いは関係なさそうだ。
関係ありそうなのはCanvas Scalerで、Unityのマニュアルによれば、
UI Scale Mode : Canvas内のUI要素をどのようにスケーリングするかを決めます。
 Constant Pixel Size : UI要素を画面サイズによらずピクセル単位で同様のサイズに保ちます。
 Scale With Screen Size : 画面サイズが大きいほどに、UI要素を大きくします。
 Constant Physical Size : UI要素を画面サイズや解像度によらず、物理的に同様のサイズに保ちます。
とあるうちの、Scale With Screen Sizeが良さそうだ。
他は画面サイズに合わせてくれないのでJoystickの含まれるUIの表示はうまくなさそう。
Scale With Screen Sizeを選んだ場合の設定は以下のもので、
Reference Resolution : UIレイアウトが設計されている解像度。もし画面解像度が大きければ、UIはスケールアップし、小さければ、UIはスケールダウンします。
Screen Match Mode : 現在の解像度のアスペクト比が基準解像度にフィットしない場合は、モードはCanvas空間をスケールするのに使用されます
 Match Width or Height : 基準値となる幅、基準値となる高さや、何かの間となるCanvasの空間をスケールします
 Expand Canvas : 空間を水平や垂直に展開するので、Canvasのサイズは基準値よりも小さくなることはありません
 Shrink Canvas : 空間を水平や垂直にトリミングするので、Canvasのサイズは基準値よりも大きくなることはありません。
合わせるか、広げるか、縮めるかの選択だ。
Match Width or Heightを選んだ場合は以下の設定項目となり、
Match : スケーリングがwidthかheight、それらを混ぜ合わせたものを参照として使用するかを決定します。
Reference Pixels Per Unit : スプライトがPixels Per Unit 設定を持つ場合、スプライトの1ピクセルはUIの1ユニットをカバーします。
なかなか面倒。

このエントリーをはてなブックマークに追加

Posted under: Unity


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.