2017-09-18 17 views
0

私はフリーアスペクト比で最新のユニティバージョンでシンプルな2Dゲームを作っていますが、画面をポートレートやランドスケープに変更するたびに乱れてしまいます。今私はチュートリアルに続き、利用可能なチュートリアルや答えを一日中過ごしましたが、不思議なことに、コードのどれかが助けになりませんでした。ここに私の画面は、私はこのコードユニティアンドロイド画面解像度

using System.Collections; 
    using System.Collections.Generic; 
    using UnityEngine; 

    public class Screeratio : MonoBehaviour { 

     // Use this for initialization 
     void Start() { 

      // set the desired aspect ratio (the values in this example are 
      // hard-coded for 16:9, but you could make them into public 
      // variables instead so you can set them at design time) 
      float targetaspect = 16.0f/9.0f; 

      // determine the game window's current aspect ratio 

      float windowaspect = (float)Screen.width/(float)Screen.height; 

      // current viewport height should be scaled by this amount 

      float scaleheight = windowaspect/targetaspect; 

      // obtain camera component so we can modify its viewport 

      Camera camera = GetComponent<Camera>(); 

      // if scaled height is less than current height, add letterbox 

      if (scaleheight < 1.0f) 
      { 
       Rect rect = camera.rect; 

       rect.width = 1.0f; 

       rect.height = scaleheight; 
       rect.x = 0; 
       rect.y = (1.0f - scaleheight)/2.0f; 

       camera.rect = rect; 

      } 
      else // add pillarbox 
      { 
       float scalewidth = 1.0f/scaleheight; 

       Rect rect = camera.rect; 

       rect.width = scalewidth; 

       rect.height = 1.0f; 
       rect.x = (1.0f - scalewidth)/2.0f; 
       rect.y = 0; 

       camera.rect = rect; 

      } 
     } 

     // Update is called once per frame 
     void Update() { 

     } 
    } 

を使用していますし、これはdoesnの今、異なる解像度

無料アスペクト enter image description here ポートレートに enter image description here 風景

enter image description here

をどのように見えるかであります同様にうまくいくようです。私のゲームはどんな画面サイズでもスムーズに動くはずです。

+0

UGUIですか?多分あなたのゲームで肖像画と風景の両方を望むなら、それはそれぞれのためにそれを設計するほうがよいでしょう。 UGUIを使用する場合は、アンカーを使用してそれらを制御するために親を設定することができます。 – ATHellboy

+0

@ATHellboy下の私のコメントを確認してください – melissa

答えて

1

キャンバスを使用していますか? アンカーの配置に注意してください。
使用方法がわからない場合は、this videoを参考にしてください。

あなたのゲームは、風景または任意の方向でのみ再生できますか?
[編集]> [プレイヤー]> [解像度とプレゼンテーション]タブで、縦または横の表示を修正できます。

+0

私はポートレートビューが私のゲームから外れているように、向きを風景に変更しました。私が使用している唯一のUI要素はテキストです(それも添付されたキャンバスでもうまくいきません。画面サイズの縮尺で)、残りはすべて画像ですので、キャンバスに入れるべきかどうかはわかりません。キャンバスの中に入れないと、バックグラウンドがさまざまなデバイスでうまくいくことをどうやって確認できますか? – melissa

+0

キャンバスにすべてを置く必要があります。 背景画像とボタンのテキストは、ボタンオブジェクトの子でなければなりません。 キャンバスツールで新しくなったら[キャンバスの公式団体]をチェックしてください(https://unity3d.com/fr/learn/tutorials/topics/user-interface-ui/ui-canvas) – DavEat