在Unity中,可以使用CanvasScaler组件来适配不同屏幕尺寸下的UI。以下是一个简单的代码示例:
using UnityEngine;
using UnityEngine.UI;
public class UIScaler : MonoBehaviour
{
public CanvasScaler canvasScaler;
void Start()
{
// 获取当前屏幕的宽高比
float screenRatio = (float)Screen.width / Screen.height;
// 设置CanvasScaler的屏幕匹配模式
canvasScaler.matchWidthOrHeight = screenRatio > 1 ? 1 : 0;
// 设置CanvasScaler的参考分辨率
canvasScaler.referenceResolution = new Vector2(screenRatio > 1 ? 1920 : 1080, screenRatio > 1 ? 1080 : 1920);
}
}
此脚本将根据屏幕的宽高比选择合适的屏幕匹配模式并设置参考分辨率。如果屏幕宽高比大于1(横屏),则使用宽度匹配模式;否则,使用高度匹配模式。参考分辨率设置为1920x1080或1080x1920,根据屏幕宽高比的不同进行调整。
将此脚本附加到Canvas对象上,并将CanvasScaler组件分配给canvasScaler变量。然后,可以根据需要进一步调整UI元素的位置和大小,以适应不同屏幕尺寸。