Unity URP切换品质和Feature开关的性能问题
现在对我的项目进行安卓端发布,需要切换品质和一些Feature开关。
我是这样做的。
划分品质

首先Renerer分为2个Android和PC,图中其他不用参考。
每个副本的URP Asset分为pc和android,例如图中的
hall和hall_android。


我们可以看到hall用的pc的renderer,hall_android用的是android的renderer设置。
进入副本切换
public void SetQuality(string scenename){
#if UNITY_ANDROID scenename += "_android";
#endifif (TryGetValue(scenename, out var rpa)){Debug.Log("切换品质:" + scenename);QualitySettings.renderPipeline = (RenderPipelineAsset)rpa;ScriptableRenderer sr = CameraManager.inst.cameraData.scriptableRenderer;//var property = typeof(ScriptableRenderer).GetProperty("rendererFeatures", BindingFlags.NonPublic | BindingFlags.Instance);List<ScriptableRendererFeature> features = property.GetValue(sr) as List<ScriptableRendererFeature>;for (int i = 0; i < features.Count; i++){Debug.Log("features :" + features[i].name + " , active :" + features[i].isActive);}}else{Debug.LogError("没找到这个品质:" + scenename);}}
TryGetValue是从所有的URPAsset里获取对应的设置,然后通过QualitySettings.renderPipeline函数覆盖设置。
后面是输出所有的features名字和开关。
开启和关闭Feature
public void EnableFeature(string featureName,bool featureEnable)
{ScriptableRenderer sr = CameraManager.inst.cameraData.scriptableRenderer;//var property = typeof(ScriptableRenderer).GetProperty("rendererFeatures", BindingFlags.NonPublic | BindingFlags.Instance);List<ScriptableRendererFeature> features = property.GetValue(sr) as List<ScriptableRendererFeature>;for (int i = 0; i < features.Count; i++){if (features[i].name == featureName){features[i].SetActive(featureEnable);Debug.Log("features change :" + features[i].name + " , active :" + features[i].isActive);}}
}
这个接口用于开关某些feature。
特别重要的性能问题
这里要注意,因为每个副本的renderer是共用的,所以feature需要根据每个副本不同来开启关闭比较灵活。
举例说明

这里这个VolumetricLightsDepthPrePassFeature是一个雾效,如果在hall副本的时候开启了,在其他副本没有使用,那么开着就白白的浪费了性能,所以我都是默认关闭的,在副本特定位置打开,在离开副本关闭掉。
那就到这里了。
如果对你有用,请点赞。
参考
相关文章:
Unity URP切换品质和Feature开关的性能问题
现在对我的项目进行安卓端发布,需要切换品质和一些Feature开关。 我是这样做的。 划分品质 首先Renerer分为2个Android和PC,图中其他不用参考。 每个副本的URP Asset分为pc和android,例如图中的 hall和hall_android。 我们可以看到hall用的…...
jmeter解决返回unicode编辑
一般乱码有两种方法来解决: 1、修改配置文件jmeter.properties中默认编码格式ISO-8859-1(不支持中文),修改为utf-8 sampleresult.default.encoding utf-82、添加BeanShell PostProcessor加入 prev.setDataEncoding("utf-8")3、还有一种返回…...
C# 基础入门
第二章 C# 语法基础 2-1 C# 中的关键字 关键字,是一些被C#规定了用途的重要单词。 在Visual Studio的开发环境中,关键字被标识为蓝色,下图代码中,用红方框圈出的单词就是关键字。 关键字 class ,这个关键字的用途是…...
PHP 支付宝(单笔转账到银行账户接口)
alipay.fund.trans.tobank.transfer(单笔转账到银行账户接口) 小程序文档 - 支付宝文档中心 一、下载支付宝SDK,现有版本v1、v2、v3 https://github.com/alipay/alipay-sdk-php-all github 慢的话,DNS 直达即可 140.82.112.3 github.com 【host文…...
【Java万花筒】Java安全卫士:从密码学到Web应用攻击
Java安全锦囊:从Web应用攻击到加密算法,助你建立强固的开发堡垒 前言 在当今数字化时代,安全性至关重要,特别是对于Java开发者而言。本文将深入探讨Java安全与加密领域的关键库和技术,包括Bouncy Castle、Jasypt、Ke…...
redis安装-Linux为例
可以下载一个Shell或者MobaXterm工具,便于操作 在redis官网下载压缩包 开始安装 安装依赖 yum install -y gcc tcl切换目录 切换目录后直接把redis安装包拖到/user/local/src/下 cd /user/local/src/解压然后安装 #解压 tar -zxvf redis-7.2.4.tar.gz #安装 …...
iOS长按时无法保存图片问题解决方案
在使用iOS设备的用户中,相信很多人都有过在浏览网页时遇到长按时无法保存图片的困扰。这主要是因为网页开发者为了保护版权或隐私,默认屏蔽掉了图片长按时保存的功能。 具体来说,问题出在-webkit-touch-callout这个CSS属性上。这个属性用于定…...
Datawhale 强化学习笔记(一)
参考 在线阅读文档 github 教程 开源框架 JoyRL datawhalechina/joyrl: An easier PyTorch deep reinforcement learning library. (github.com) 策略梯度算法的两种不同的推导版本。 强化学习中的一些核心问题,比如优化值的估计、解决探索与利用等问题。 从传统强…...
首届PolarDB开发者大会在京举办,阿里云李飞飞:云数据库加速迈向智能化
1月17日,阿里云PolarDB开发者大会在京举办,中国首款自研云原生数据库PolarDB发布“三层分离”新版本,基于智能决策实现查询性能10倍提升、节省50%成本。此外,阿里云全新推出数据库场景体验馆、训练营等系列新举措,广大…...
003-90-15【SparkSQLDFDS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作
003-90-14【SparkSQL&DF&DS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作 【SparkSQL&DF&DS】Dataset 的创建和使用 【SparkSQL&DF&DS】2,Dataset 的创建和使用1, 创建2, show3, map4, as5, select6 f…...
代码随想录-刷题第五十七天
42. 接雨水 题目链接:42. 接雨水 思路:本题十分经典,使用单调栈需要理解的几个问题: 首先单调栈是按照行方向来计算雨水,如图: 使用单调栈内元素的顺序 从大到小还是从小到大呢? 从栈头&…...
flutter 播放SVGA动图
SVGAPlayer-Flutter:这是一个轻量级的动画渲染库,可以通过Flutter CustomPainter原生渲染动画,为您带来高性能,低成本的动画体验123。 您可以按照以下步骤使用 SVGAPlayer-Flutter 插件: 1.在 pubspec.yaml 文件中添…...
鸿蒙开发软件汉化
一、打开设置 File>Settings>Plugins>Marketplace,输入Chinese搜索插件(有的人是搜不到的),但别慌,选择Marketplace傍边的 Installed 按钮,里面就有Chinese插件(如果搜索出来的东西比较多往下就可…...
Three.js Tri-panner (三面贴图) 材质 两种实现方式
文章目录 介绍自定义shaderNodeMaterial骨骼材质特殊处理 介绍 Tri-panner 在babylonjs中有支持 但是three.js目前的基础材质并不支持 需要自己定义shader 或者使用目前还没有什么完善的文档的 NodeMaterial 下面展示两种实现方式 自定义shader /*** description: 替换三角面…...
Docker部署Flask项目
Docker部署Flask项目 一、准备项目代码二、编写Dockerfile三、服务器部署 一、准备项目代码 这里写了一个简单的Flask的demo,源代码如下: from flask import Flaskapp Flask(__name__)app.route("/") def index():return "<h1 styl…...
Git将某个文件合并到指定分支
企业开发中,经常会单独拉分支去做自己的需求开发,但是某些时候一些公共的配置我们需要从主线pull,这时候整个分支merge显然不合适 1.切换至待合并文件的分支 git checkout <branch>2.将目标分支的单个文件合并到当前分支 git checkou…...
Dockerfile构建镜像以及阿里云上传
前言 我们在使用docker部署微服务项目的时候会发现这样一个问题:每个服务构建出的镜像文件都很大,几百M,有些原始镜像也已经占据了很多内存了... 这种大的镜像往往都会导致迁移的速度变慢。其实我们启动容器主要最需要的镜像是jdk࿰…...
锂离子电池建模综述
锂电池很有吸引力,因为在元素周期表中,锂是一种非常正电的元素,它也恰好是最轻的金属,密度是水的一半。通常,电池由串联/并联的电化学电池组成。每个电池都包含一个负极(放电时为阳极)和一个由电…...
获取淘宝商品销量数据的方法分享(API、爬虫技术)
随着电子商务的飞速发展,获取淘宝商品销量数据的需求越来越强烈。无论是商家、分析师还是研究人员,都需要这些数据来了解市场趋势、竞争对手情况以及制定营销策略。本文将分享如何通过API和爬虫技术获取淘宝商品销量数据。 一、API获取数据 淘宝开放平…...
android 自定义八边形进度条
自定义八边形动画效果图如下 绘制步骤: 1.先绘制橙色底部八边形实心 2.黑色画笔绘制第二层,让最外层显示一条线条宽度即可 3.再用黄色画笔绘制黄色部分 4.使用渐变画笔根据当前进度绘制覆盖黄色部分 5.使用黑色画笔根据当前进度绘制刻度条 6.黑色画笔绘制…...
3个高效窗口管理技巧:用AlwaysOnTop重新定义你的多任务工作流
3个高效窗口管理技巧:用AlwaysOnTop重新定义你的多任务工作流 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否曾在编写代码时,为了查看API文档而反…...
RK3568开发板NFS服务器搭建:嵌入式Linux开发效率提升实战
1. 项目概述与核心价值最近在折腾一块瑞芯微的RK3568开发板,想在上面跑一些自己的应用。开发调试阶段,最头疼的就是每次修改完代码,都得重新编译、打包、烧录到板子上,这个过程不仅耗时,还容易打断思路。为了解决这个痛…...
从‘三调’到‘新国标’:深度解读用地分类演变背后的GIS数据处理逻辑与避坑指南
从‘三调’到‘新国标’:深度解读用地分类演变背后的GIS数据处理逻辑与避坑指南 当规划师第一次打开2020年11月版的《用地用海分类指南》,看到169种地类时,很多人会下意识倒吸一口冷气——这比2月版的132种足足多出37个细分项。这种"直男…...
别再让日志拖慢你的服务器!深入对比C++同步与异步日志的性能差异(附TinyWebServer实测)
C服务器日志性能优化实战:同步与异步方案深度对比 当你的Web服务器开始承载真实流量时,那些看似无害的日志语句可能正在悄悄吞噬着系统性能。我曾在一个电商促销日亲眼目睹,由于同步日志的阻塞导致服务器响应时间从50ms飙升到800ms࿰…...
别再装ModelSim了!用HDLBits网页版5分钟搞定Verilog仿真和波形图
5分钟极速验证:用HDLBits网页版替代传统Verilog仿真工具 在图书馆公用电脑上突然有了个FPGA设计灵感,却发现自己没装ModelSim?公司电脑没有管理员权限,无法安装Vivado Simulator?别急着放弃——打开浏览器,…...
5分钟搞定AI 3D建模!TripoSR:图片秒变专业3D模型的终极方案
5分钟搞定AI 3D建模!TripoSR:图片秒变专业3D模型的终极方案 【免费下载链接】TripoSR TripoSR: Fast 3D Object Reconstruction from a Single Image 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR 还在为复杂的3D建模软件头疼吗&am…...
设计师私藏的11个纹理Prompt原子模块(仅限本周开放下载:含PBR贴图映射表+光照反射系数速查卡)
更多请点击: https://intelliparadigm.com 第一章:纹理Prompt原子模块的设计哲学与底层逻辑 纹理Prompt原子模块并非简单拼接关键词的字符串生成器,而是以认知建模为根基、以可组合性为约束、以语义保真度为校验目标的结构化表达系统。其设计…...
MoE稀疏激活原理与工程实践:解密大模型2%参数调用真相
1. 项目概述:参数规模与稀疏激活的真相拆解“GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏,常被当作“AI算力爆炸”的标志性论断。但作为从2016年就开始跑LSTM、2018年手写Transformer Enc…...
JWT密钥轮换缺陷与零停机热修复实战指南
1. 这不是一次普通升级,而是一次密钥信任体系的临界点崩塌Seedance2.0 v2.0.3发布不到72小时,我在给客户做例行安全巡检时,发现一个反直觉的现象:所有新签发的JWT令牌在旧版本客户端(v2.0.2)上验证失败&…...
利用Taotoken审计日志功能追踪与分析团队内部的模型使用情况
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken审计日志功能追踪与分析团队内部的模型使用情况 对于项目管理者或安全运维人员而言,清晰掌握团队内部大模…...
