Unity屏幕适配——立项时设置

项目类型:2D游戏、竖屏、URP

其他类型,部分原理类似。

1、确定设计分辨率:750*1334

        为什么是它?
        因为它是 iphone8 的尺寸,宽高比适中。
        方便后续适配到真机的 “更长屏” 或 “更宽屏”

2、在场景中添加 UICamera、MainCamera、UICanvas

        添加物体及相关组件

        

3、调整 UICamera 物体的 Camera 组件(URP下)

        Render Type: Overlay                                (支持多相机显示,要点)
        Projection: Orthographic                          (正交)
        Size: 6.67                                                 (修改将影响 UICanvas 的 Scale 值)(注意,它不影响 Canvas 在 Game 视图中的占比,因为 Canvas 总是填满屏幕)
        ClearDepth:true                                       (多相机显示正确,要点)
        Culling Mask:UI                                     (使只渲染UI)

        

4、调整 MainCamera 物体的 Camera 组件(URP下)

        Render Type: Base
        Projection: Orthographic                          (正交)(2D游戏)
        Size: 6.67                                                 (修改将影响 场景物体在 Game 视图中的占比)
        Culling Mask:去掉UI                              (使不渲染UI)
        Stack 中,添加 UICamera                       (相机关联,支持多相机显示,要点)

        

5、调整 UICanvas 物体的 Canvas 组件

        RenderMode: Screen Space-Camera
        RenderCamera: 拖入 UICamera
        SortingLayer: UI

        

6、设置 UICanvas 物体的 Canvas Scaleer 组件

        UI Scale Mode: Scale With Screen Size    (随屏幕缩放)      
        Reference Resolution: 750*1334               (设计分辨率)
        Screen Match Mode: Expand                     (总是扩展更大边)(移动游戏通常采用无黑边的适配方式)
      
  Reference pixels Per Unit: 100                   (控制精灵像素密度,具体见下方说明)

        

注意:为什么是 6.67 ?

        6.67 = 1334/2/100(若为横屏游戏则为3.75)

其中:
        1334 :设计分辨率的高(若为横屏游戏则为750)

        2 :OrthographicSize 为垂直视体大小的一半(Size属性用于定义相机视图的垂直大小)。

           Camera-orthographicSize - Unity 脚本 API

        

        100:UI坐标系 相对 场景世界坐标系的缩放倍数,即,在 Game 视图 中  UI 中100像素 = 场景中世界坐标系的 1米

        这个值来自 Canvas Scaler 的 Reference pixels Per Unit

        Canvas-referencePixelsPerUnit - Unity 脚本 API

        

        为什么它决定了 UI坐标系 相对 场景世界坐标系 的缩放倍数?

        因为:

        Image(UI坐标系中的物体) SetNative 后的大小(单位:像素数) = 原图像素数 / (Sprite 导入设置的 Pixels Per Unit / CanvasScaler设置的 Reference Pixels Per Unit)

        SpriteRenderer(场景世界坐标系中的物体) 的大小(单位:米) = 原图像素数 / Sprite 导入设置的 Pixels Per Unit

        可以看到,两者差的倍数正是 Canvas Scaler 的 Reference pixels Per Unit        

        当两者同时使用一张图时,在 Game 视图 中其大小是相同的

        

对齐之美

        1、将 MainCamera 的 Size 设为 6.67,将使世界物体 7.5m*13.34米的物体 刚好填充整个 MainCamera 的视口,即刚好填充 Game 视图  的整个屏幕

        

        2、将 UICamera 的 Size 设为 6.67,将使 UICanvas 的 Scale 值为 0.01,在 Scene 视图 中观察,UICamera 和 MainCamera 的视口大小是重合的,UI与场景物体大小也是对齐的,完美!               

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33751.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PawSQL for TDSQL:腾讯云TDSQL数据库性能优化全攻略

TDSQL 作为腾讯云推出的分布式数据库,凭借其高扩展性、高可用性和高性能等优势,广泛应用于金融、互联网、政务等领域。随着业务的不断增长和数据量的爆炸式增长,如何优化 TDSQL 数据库的性能,成为众多企业和开发者面临的挑战。本文…

机器学习(七)

一,监督学习和无监督学习聚类的数据集比较: 监督学习: 数据集包括输入的数据和与之对应的标签 无监督学习: 数据集仅含有输入的数据,要求算法自己通过所给的数据集来确定决策边界 二,聚类(Clustering): 聚…

海鲜水产行业wordpress外贸主题

模板采用清新的海洋风格设计,完美契合水产和海鲜行业的特点,让您的网站在众多竞争者中脱颖而出。 高质量的图片展示区域,让您可以展示新鲜捕捞的海鲜产品,吸引客户的注意力。 多功能性,满足业务需求: 模…

调优案例一:堆空间扩容提升吞吐量实战记录

📝 调优案例一:堆空间扩容提升吞吐量实战记录 🔧 调优策略:堆空间扩容三部曲 # 原配置(30MB堆空间) export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置(扩容至120MB&am…

【大模型系列】llama.cpp本地运行大模型

上一篇链接: 【大模型系列】使用ollama本地运行千问2.5模型 我们讲了ollama本地运行大模型,这里我们介绍另一种本地运行大模型的方法:llamacpp 软件下载 下载地址:https://github.com/ggml-org/llama.cpp/releases 下载cpu版本的llamacpp&a…

maven之自定义插件

写在前面 在使用maven肯定是离不开插件的,比如执行mvn clean或者时mvn compile其实运行的就是绑定的默认插件。虽然我们一般不需要来自定义插件,但是为了使用的过程中更加的清晰,来尝试自定义插件还是很有必要的,所以本文就一起来…

工程实践:如何使用SU17无人机来实现室内巡检任务

阿木实验室最近发布了科研开发者版本的无人机SU17,该无人机上集成了四目视觉,三维激光雷达,云台吊舱,高算力的机载计算机,是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…

【瞎折腾/Dify】使用docker离线部署Dify

文章目录 说在前面安装Docker(外网)获取Dify源码(外网)拉取docker镜像(外网)导出镜像(内网)导入镜像(内网)运行问题 说在前面 外网操作系统:windows内网操作系统:ubuntu外网docker desktop版本:4.29.0外网docker版本:version 26.0…

【Git】配置Git

配置Git 忽略特殊文件 在日常开发中,有些文件不想或不应该提交到远端,如保存数据库密码的配置文件。 在Git工作区的根目录下创建一个特殊的.gitignore文件,把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.gi…

mysql学习-常用sql语句

1、安装mysql参考网上链接,进入mysql数据库 mysql -u root -p 2、数据库操作 2.1、创建数据库 create database 数据库名 default character set utf8; 2.2、显示所有数据库 show databases; 2.3、选择数据库 use elementInfo; 2.4、删除数据库 drop database…

PostgreSQL16 的双向逻辑复制

一、配置 双向逻辑复制具体步骤 参考:PostgreSQL 16 双向逻辑复制与事务回环控制 - 墨天轮 1. 安装和准备环境 确保在所有参与复制的服务器上都安装了 PostgreSQL 16。主服务器:192.168.0.100从服务器:192.168.0.102 2. 配置 PostgreSQL 在每个服务…

FastAPI复杂查询终极指南:告别if-else的现代化过滤架构

title: FastAPI复杂查询终极指南:告别if-else的现代化过滤架构 date: 2025/3/14 updated: 2025/3/14 author: cmdragon excerpt: 本文系统讲解FastAPI中复杂查询条件的构建方法,涵盖参数验证、动态过滤、安全防护等18个核心技术点。通过引入策略模式、声明式编程等技术,彻…

C++前缀和

个人主页:[PingdiGuo_guo] 收录专栏:[C干货专栏] 大家好,今天我们来了解一下C的一个重要概念:前缀和 目录 1.什么是前缀和 2.前缀和的用法 1.前缀和的定义 2.预处理前缀和数组 3.查询区间和 4.数组中某个区间的和是否为特定…

机器学习基础

目录 泛化误差 偏差和方差 噪声 生成模型和判别模型 正态分布(Normal Distribution) 超参数选择 Grid Search 网格搜索 Random Search 随机搜索 Hyperopt Hyperas 参数估计方法对比 MLE 最大似然估计 MAP最大后验估计 贝叶斯估计 距…

中山六院团队发表可解释多模态融合模型Brim,可以在缺少分子数据时借助病理图像模拟生成伪基因组特征|顶刊解读·25-02-14

小罗碎碎念 在癌症诊疗领域,精准预测患者预后对临床决策意义重大。传统的癌症分期系统,如TNM分期,因无法充分考量肿瘤异质性,难以准确预测患者的临床结局。而基于人工智能的多模态融合模型虽有潜力,但在实际临床应用中…

系统可观测性(5)OpenTelemetry基础使用

系统可观测性(5)OpenTelemetry基础概念 Author: Once Day Date: 2025年3月12日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 本文档翻译整理自《OpenTelemetry Docs》&a…

OpenHarmony自定义子系统、部件与模块

如图所示,OpenHarmony系统源码中,大体上按照不同种类的功能分成多个子系统,然后一个子系统内部进一步在同类功能上的差异性划分成一个或多个部件,也就是说一个部件表示一个具体功能的源码集合。最后一个部件的源码再划分成一个或多…

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…

uni-app打包h5并部署到nginx,路由模式history

uni-app打包有些坑,当时运行的基础路径填写了./,导致在二级页面刷新之后,页面直接空白。就只能换一个路径了,nginx也要跟着改,下面是具体步骤。 manifest.json配置web 运行路径写/h5/,或者写你们网站的目…

SQLiteStudio:一款免费开源跨平台的SQLite管理工具

目录 1.简介 2.下载与安装 3.实现分析 4.总结 1.简介 SQLiteStudio 是一款专门用于管理 SQLite 数据库的图形化工具,由波兰开发者开发并维护。由于 SQLite 以其轻量级、零配置、嵌入式等特性被广泛应用于各种小型项目、移动应用和桌面应用中,而 SQLi…