Unity URP切换品质和Feature开关的性能问题

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

划分品质

在这里插入图片描述
首先Renerer分为2个Android和PC,图中其他不用参考。
每个副本的URP Asset分为pc和android,例如图中的
hall和hall_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副本的时候开启了,在其他副本没有使用,那么开着就白白的浪费了性能,所以我都是默认关闭的,在副本特定位置打开,在离开副本关闭掉。

那就到这里了。

如果对你有用,请点赞。

参考

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

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

相关文章

使用ffmpeg进行视频截取

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

Springboot+vue项目部署所有遇到的坑

https://flowus.cn/siriusx/share/0a818075-372b-4948-88af-c75c1d10ceab项目地址及笔记 Spring Boot3VUE3前后端分离项目基于Jwt的校验方案 环境搭建 安装jdk17 安装mysql server https://ubuntu.com/server/docs/databases-mysql 将服务器root账号由系统验证改为密码验证…

Unity ComputeShader 使用GPU快速计算复杂问题

Unity ComputeShader 使用GPU快速计算复杂问题 前言项目创建ComputeShader编写CompturShader创建Unity代码场景布置运行场景 参考 前言 遇到一个问题&#xff0c;需要大量的计算&#xff0c;在Unity中直接写会长时间的阻塞主线程&#xff0c;正好使用ComputeShader让GPU来帮我…

webpack/vue-cli构建速度和打包体积优化

编译分析插件 webpack-bundle-analyzer webpack-bundle-analyzer可以生成代码分析报告&#xff0c;可以直观地分析打包出的文件有哪些&#xff0c;及它们的大小、占比情况、各文件 Gzipped 后的大小、模块包含关系、依赖项等 npm i -D webpackbar webpack-bundle-analyzer ja…

Intel Quartus II IP之DP1.4 工程的创建与使用

前述&#xff1a; Win10电脑安装了Quartus 21.4&#xff0c;这可以满足绝大多数工程&#xff0c;特别是对于简单调用fifo/ram等的工程&#xff0c;但是想要学习Quartus的HDMI/DP等高速接口类IP&#xff0c;首先需要创建HDMI/DP IP的设计demo工程&#xff0c;此时还需要安装Ecl…

数学建模--比赛

内容来自数学建模BOOM&#xff1a;【快速入门】北海&#xff1a;数模建模基础MATLAB入门论文写作数学模型与算法(推荐数模美赛国赛小白零基础必看教程)_哔哩哔哩_bilibili 目录 1.学习内容 2.参赛须知 1&#xff09;参赛作品的组成 2)参赛作品的提交 3.软件安装 4.注意…

《Redis:NoSQL演进之路与Redis深度实践解析》

文章目录 关于NoSQL为什么引入NoSQL1、单机MySQL单机年代的数据库瓶颈 2、Memcached&#xff08;缓存&#xff09; MySQL 垂直拆分 &#xff08;读写分离&#xff09;3、分库分表水平拆分MySQL集群4、如今的网络架构5、总结 NoSQL的定义NoSQL的分类 Redis入门Redis能干嘛&…

【CSS】解决height = line-height 文字不垂直居中(偏上、偏下)的问题

解决办法1&#xff1a; 查看 font-family 属性&#xff0c;确认是否是因为字体而导致的不垂直居中问题。 其他小知识&#xff1a; 基线就是小写x字母的下边缘(线) 就是我们常说的 基线。line-height 属性设置的行高也就是定义的两行文字基线之间的距离! 参考文章&#xff1a;…

git仓库使用说明

Git软件使用 1.先下载git相关软件 下载地址&#xff1a; Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站&#xff0c;注册账号 3.打开个人中心&#xff0c;选择ssh公钥&#xff0c;查看如何生成公钥 4.生成公钥后&#xff0c;添加相应的公钥 …

window11环境安装jdk17并配置环境变量

目录 一、下载地址二、安装步骤三、环境变量配置四、环境变量配置是否成功的测试 一、下载地址 https://www.oracle.com/java/technologies/downloads/#jdk17-windows 二、安装步骤 双击已下载的 jdk-17_windows-x64_bin.exe 安装包&#xff0c;点击【下一步】&#xff0c;…

【总结】Dinky学习笔记

概述 Dinky 是一个开箱即用、易扩展&#xff0c;以 Apache Flink 为基础&#xff0c;连接 OLAP 和数据湖等众多框架的一站式实时计算平台&#xff0c;致力于流批一体和湖仓一体的探索与实践 官网&#xff1a;Dinky 核心特性 沉浸式&#xff1a;提供专业的 DataStudio 功能&a…

NLP论文阅读记录 - 2021 | WOS 使用 GA-HC 和 PSO-HC 改进新闻文章的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试 二.相关工作三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Improved Text Summa…