news 2026/7/26 12:37:28

14. UGUI屏幕适配

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
14. UGUI屏幕适配

1.基础适配

2.异形屏适配


1.基础适配

publicclassSmartCanvasAdapter:MonoBehaviour{[SerializeField]privateCanvasScalercanvasScaler;[SerializeField]privateVector2designResolution=newVector2(1080,2340);privatefloatlastScreenWidth;privatefloatlastScreenHeight;voidStart(){if(canvasScaler==null)canvasScaler=GetComponent<CanvasScaler>();AdaptCanvas();}voidUpdate(){// 检测屏幕尺寸变化(比如折叠屏展开)if(Screen.width!=lastScreenWidth||Screen.height!=lastScreenHeight){AdaptCanvas();lastScreenWidth=Screen.width;lastScreenHeight=Screen.height;}}voidAdaptCanvas(){floatdesignAspect=designResolution.x/designResolution.y;floatscreenAspect=(float)Screen.width/Screen.height;// 使用平滑过渡floatminAspect=designAspect*0.7f;floatmaxAspect=designAspect*1.5f;floatclampedAspect=Mathf.Clamp(screenAspect,minAspect,maxAspect);floatt=Mathf.InverseLerp(minAspect,maxAspect,clampedAspect);// 使用插值避免突变floattargetMatch=Mathf.Lerp(1f,0f,t);canvasScaler.matchWidthOrHeight=targetMatch;// 可选:触发布局重建(如果需要)StartCoroutine(RebuildLayoutNextFrame());}IEnumeratorRebuildLayoutNextFrame(){yieldreturnnull;// 等待一帧,让CanvasScaler先更新LayoutRebuilder.ForceRebuildLayoutImmediate(canvasScaler.GetComponent<RectTransform>());}}

2.异形屏适配

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 12:02:44

全球代理ip是什么?一文搞懂原理与应用

在当前数字化时代&#xff0c;全球代理IP正成为企业开展数据采集与跨境业务的关键技术工具。无论是对海外市场进行调研&#xff0c;还是获取公开数据支持业务决策&#xff0c;企业都离不开稳定、快速的全球IP资源支持。那么&#xff0c;全球代理IP的工作原理是什么&#xff1f;…

作者头像 李华
网站建设 2026/7/24 5:48:29

告别音乐平台限制:Spotube跨平台音乐播放器深度使用指南

告别音乐平台限制&#xff1a;Spotube跨平台音乐播放器深度使用指南 【免费下载链接】spotube spotube - 一个开源、跨平台的 Spotify 客户端&#xff0c;使用 Spotify 的数据 API 和 YouTube 作为音频源&#xff0c;适合希望在不同平台上使用 Spotify 服务的开发者。 项目地…

作者头像 李华
网站建设 2026/7/25 4:06:19

精通Maestro移动UI自动化:实战无障碍测试与高级技巧解析

精通Maestro移动UI自动化&#xff1a;实战无障碍测试与高级技巧解析 【免费下载链接】maestro Painless Mobile UI Automation 项目地址: https://gitcode.com/gh_mirrors/ma/maestro 在移动应用开发日益复杂的今天&#xff0c;确保应用界面对所有用户友好且可访问已成为…

作者头像 李华
网站建设 2026/7/26 10:24:05

Golang棋牌游戏后端实战

在实时互动类游戏开发中&#xff0c;棋牌游戏因其强状态依赖、高频率交互和严格公平性要求&#xff0c;成为后端系统设计的“试金石”。而 Go 语言&#xff08;Golang&#xff09;凭借其轻量级并发模型、高效网络处理能力和简洁的工程结构&#xff0c;成为构建高性能棋牌后端的…

作者头像 李华
网站建设 2026/7/26 8:17:14

AI Agent构建实战:v0s提示词库与Latitude平台的无缝集成

AI Agent构建实战&#xff1a;v0s提示词库与Latitude平台的无缝集成 【免费下载链接】v0-system-prompts-models-and-tools 项目地址: https://gitcode.com/GitHub_Trending/v0s/v0-system-prompts-models-and-tools 还在为AI Agent开发中的复杂配置而烦恼&#xff1f;…

作者头像 李华