| 1234567891011121314151617181920212223242526272829303132333435 |
- using UnityEngine;
- using UnityEngine.UI;
- namespace JC.Unity.UI {
- [ExecuteAlways]
- public class BackgroundAdapter : MonoBehaviour
- {
- private CanvasScaler _scaler;
- void Start()
- {
- UpdateScale();
- }
- #if UNITY_EDITOR
- void Update()
- {
- UpdateScale();
- }
- #endif
- void UpdateScale()
- {
- if (_scaler == null) _scaler = GetComponentInParent<CanvasScaler>();
- if (_scaler == null) return;
- var resolution = _scaler.referenceResolution;
- var rt = _scaler.transform as RectTransform;
- if (rt == null) return;
- var screenSize = rt.sizeDelta;
- var factor = Mathf.Max(screenSize.x / resolution.x, screenSize.y / resolution.y);
- var scale = Vector3.one * factor;
- transform.localScale = scale;
- }
- }
- }
|