- Home /
 
the unity aspect ratio script looks good in computer but not in android phones
I'm developing a game for android devices.and i have a script that solve the ratio problem but i have a problem in this code.and i dont know why.it looks perfect in computer even resize the game screen but in mobile phones have a problem.my game runs in landscape mode.this is the script :
 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 public class reso : MonoBehaviour
 {
     void Update()
     {
         // 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 && Screen.width <= 490 )
         {
             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;
         }
     }
 }
 
               i figure that my problem occur in this part of the script:
    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;
             }
 
               and its look like this in my mobile phone in portrait:

and in landscape mode:

Your answer
 
             Follow this Question
Related Questions
Loading pictures, how to hide and load in-game pictures? (details) 0 Answers
OrthographicSize on Android changes from Start to Update? 0 Answers
How to move camera only when player is past halfway 1 Answer
How to show live camera on android inside scene??? 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers