unity 中让Canvas组件的Match比例自适应
using UnityEngine;
using UnityEngine.UI;
public class CanvasMatchAdaptive : MonoBehaviour
{
// Canvas Scaler
public CanvasScaler m_CanvasScaler;
// Reference Screen resolution
public float m_ReferenceResolutionX = 1920;
public float m_ReferenceResolutionY = 1080;
private float m_ReferenceAspect = 0.5625f;
private void Awake()
{
m_ReferenceAspect = m_ReferenceResolutionX / m_ReferenceResolutionY;
UpdateCanvasScaler();
}
private void Update()
{
UpdateCanvasScaler();
}
private void UpdateCanvasScaler()
{
float aspect = (float)Screen.width / (float)Screen.height;
m_CanvasScaler.matchWidthOrHeight = aspect > m_ReferenceAspect? 0 : 1;
}
}