123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class ScreenAdapt : MonoBehaviour
- {
- public Camera cam;
- public CanvasScaler scaler;
- public void AdaptScreen()
- {
- if (Application.isEditor)
- {
- return;
- }
- AdaptScreen(Screen.width, Screen.height);
- //AdaptScreen(1900, 900);
- }
- public void AdaptScreen(float sceenWidth, float screenHeight)
- {
- float refeRatio = scaler.referenceResolution.y/scaler.referenceResolution.x;
- float deviceRatio = screenHeight/sceenWidth;
- if (refeRatio < deviceRatio)
- {
- Rect rect = new Rect();
- rect.width = 1;
- rect.x = 0;
- rect.height = refeRatio/deviceRatio;
- rect.y = (1 - rect.height)/2;
- cam.rect = rect;
- scaler.matchWidthOrHeight = 0;
- }
- else if (refeRatio > deviceRatio)
- {
- Rect rect = new Rect();
- refeRatio = scaler.referenceResolution.x/scaler.referenceResolution.y;
- deviceRatio = sceenWidth/screenHeight;
- rect.width = refeRatio/deviceRatio;
- rect.x = (1 - rect.width)/2;
- rect.height = 1;
- rect.y = 0;
- cam.rect = rect;
- scaler.matchWidthOrHeight = 1;
- }
- }
- }
|