title: Unity android screen resolution
body: <p>I have made a simple 2D game on the latest unity version in free aspect ratio however whenever I change the screen to portrait or landscape things mess up. Now I have spent the whole day following tutorials and going through every tutorial or answer available but strangely not even one of the code helped. Here is how my screen looks on different resolutions </p>
  
  <p>Free Aspect
  <a href="https://i.stack.imgur.com/ZZsGx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZZsGx.png" alt="enter image description here"></a>
  Portrait
  <a href="https://i.stack.imgur.com/F6LCf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/F6LCf.png" alt="enter image description here"></a>
  Landscape</p>
  
  <p><a href="https://i.stack.imgur.com/LguPq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LguPq.png" alt="enter image description here"></a></p>
  
  <p>Right now I'm using this code </p>
  
  <pre><code>   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&lt;Camera&gt;();
  
              // if scaled height is less than current height, add letterbox
  
              if (scaleheight &lt; 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 () {
  
          }
      }
  </code></pre>
  
  <p>and this doesn't seem to work as well. What should I do that my game runs smoothly on any screen size.</p>