Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class RatioEnforcer : MonoBehaviour {
- [SerializeField] private float targetWidth = 256;
- [SerializeField] private float targetHeight = 240;
- // 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 = targetWidth / targetHeight;
- // 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;
- }
- }
- }
Add Comment
Please, Sign In to add comment