Unity3D :运行时 UI 的性能注意事项

news2024/12/29 10:36:55

推荐:将 NSDT场景编辑器 加入你的3D工具链
3D工具集: NSDT简石数字孪生

运行时 UI 的性能注意事项

本页介绍如何提高运行时的性能用户界面
.

优化数据存储

您可以使用 usageHints 来设置元素在运行时的使用方式,以便相应地优化数据存储。例如:

visualElement.usageHints = UsageHints.DynamicTransform;

下表通过示例描述了要用于哪些元素的属性:

具有以下元素使用这个
频繁更改其位置或转换UsageHints.DynamicTransform如果更改 、 或元素,请在该元素上设置 UsageHints.DynamicTransform。style.leftstyle.topstyle.position
许多经常更改位置或转换的子元素DynamicTransformUsageHints.GroupTransform在 ShaderGraph 中,每个节点都使用 ,在视图容器上设置 UsageHints.GroupTransform。DynamicTransform
正在设置动画的内置样式颜色UsageHints.DynamicColor如果更改元素的 、 或任何边框颜色(如 ),请在该元素上设置 UsageHints.DynamicColor。style.backgroundColorstyle.unityBackgroundImageTintColorstyle.borderLeftColor

考虑设备功能

一些安卓设备和WebGL
无法部分修补索引缓冲区。如果您的受众使用此类设备,或者如果您以 WebGL 为目标,UI 工具包呈现仍然有效,但性能可能会降低。为避免性能下降,请勿同时对太多元素进行动画处理,并在设备上进行配置文件。

避免网格镶嵌

构建的计算成本很高网孔
曲面细分视觉元素
.每当元素的大小(宽度/高度)发生变化时,其几何图形都会重新构建,这可能是动画或频繁调整大小的问题。

一般来说,变换和纹理在灵活性和重用方面并不是好的选择。但是,在制作动画时,为了获得更好的性能,请执行以下操作:

  • 使用变换而不是宽度或其他布局属性
  • 使用纹理或 2D精灵
    而不是圆角和边框

控制动态图集的纹理

要减少因纹理更改而中断的批次数并实现良好的性能,请使用图集将同时使用的纹理组合在一起。您可以使用以下任一方法实现此目的:

  • 使用精灵图集
    .使用此方法,您可以更好地控制精灵,但需要手动创建精灵图集。
  • 使用动态图集。UI 工具包会在视觉元素引用动态图集时自动向动态图集添加纹理或从中删除纹理。

验证动态图集中的纹理

使用动态图集将纹理组合在一起时,要限制绘制调用的次数,请确保纹理进入动态图集。若要验证,请使用帧调试器。帧调试器可帮助您观察纹理更改并推断批量中断。

以下示例验证动态图集是否包含运行时 UI 中的所有纹理。

示例动态图集窗口包含运行时 UI 中的所有纹理。

应用内置筛选器

动态图集纹理从指定的最小大小开始,并根据需要增长,水平或垂直加倍,直至指定的最大大小。您可以在面板设置资源中定义最小和最大图集大小。您还可以使用动态图集中的滤镜来决定是否向图集添加子纹理。

要启用或禁用滤镜,请在面板设置资源的检查器窗口中,从动态图集设置>活动滤镜下拉列表中选择选项。

使用自定义筛选器

您可以将自定义过滤器分配给 PanelSettings.dynamicAtlasSettings.customFilter 以在全局或每个纹理的基础上添加或放宽约束。

以下自定义筛选器示例绕过 Size 筛选器中的大纹理,同时使 Size 筛选器对其他纹理保持活动状态:

using UnityEngine;
using UnityEngine.UIElements;

class MyCustomFilter : MonoBehaviour
{
    public PanelSettings panelSettings;
    public Texture2D largeTexture;

    void OnEnable() { panelSettings.dynamicAtlasSettings.customFilter = Filter; }

    void OnDisable() { panelSettings.dynamicAtlasSettings.customFilter = null; }

    bool Filter(Texture2D texture, ref DynamicAtlasFilters filtersToApply)
    {
        if (texture == largeTexture)
        {
            // Disable the Size check for this one.
            filtersToApply &= ~DynamicAtlasFilters.Size;
        }
        return true;
    }
}

由3D建模学习工作室整理翻译,转载请注明出处!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三、CNNs网络架构-跨层连接思想的网络架构

《A review of convolutional neural network architectures and their optimizations》论文指出随着网络架构的深入,梯度消失、爆炸或退化问题变得越来越严重。跨层连接的思想是解决现有问题的有效方案,允许网络在非相邻层之间传递信息。因此&#xff0…

如何利用Python中的pymysql库来操作Mysql数据库,看这篇就够啦~

为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库,本文是向大家介绍了如何利用python中的pymysql库来操作mysql数据库。 1、什么是pymysql? pymysql是从python连接到mysql数据库服务器的接口&#xff0c…

上门服务小程序|东邻到家系统|上门服务系统包含哪些功能?

使用东郊到家小程序,只需要一键预约即可在工作之余、休息娱乐的时候,点一个理按疗摩技师,做一个SPA,缓解工作压力,不失为一种享受,并且上门服务小程序可以为技师或从业岗位人员提供就业服务,线上…

抖音seo优化源代码搭建+抖音小程序私有化开源部署

抖音seo优化源码,抖音seo矩阵系统搭建,抖音账号矩阵系统开发,企业在做账号矩阵过程中,最头疼的莫过于私域线索转化,作为开发者都知道,目前市面上我们了解的矩阵系统除了挂载POI信息外,无法挂载留…

一篇关于 ApiKit 的简单介绍

简介 本文介绍 ApiKit 工具,它是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。 一、常用解决方案 使用 Swagger 管理 API 文档 使用 Postman 调试 API 使用 mockjs 等工具 Mock API 数据 使用 JMeter 做 API 自动化测试 二、存在的问题 维护…

ffmpeg学习日记122-视频-获取视频的解码器,yuv格式名称,理解编码格式,封装格式,yuv格式的关系

Author: wencoo Blog:https://wencoo.blog.csdn.net/ Date: 25/05/2023 Email: jianwen056aliyun.com Wechat:wencoo824 QQ:1419440391 Details:文章目录 正文 或 背景获取像素格式,也就是yuv排列格式获取解码器id获取输出文件的封…

景区上线智慧客流人数采集分析系统的根本原因

智慧客流量采集系统是一种高效、智能的客流量采集解决方案,可以实现客流量的实时监控、数据分析和预测,提高服务质量、降低管理成本、提高安全性等优势。该系统适用于各种场所,如景区、商场、服务区、机场等。 AI客流视觉监控 一、智慧客流量…

安科瑞电力监控系统和五防系统在锡林郭勒项目的应用

摘要:随着电力、计算机、信息和网络等技术的不断发展,推动了电力监控的快速发展,人们对电力系统运行的安全性以及稳定性的要求越来越高。本文针对锡林郭勒供配电系统特点及供配电系统高可靠性的要求,提出了保护类、监测类和防误闭…

ASEMI代理长电MCR100-6可控硅的性能与应用分析

编辑-Z 本文主要介绍了新型MCR100-6晶闸管的性能与应用。首先,从晶闸管的基本原理和结构出发,分析了MCR100-6晶闸管的性能特点;其次,探讨了MCR100-6晶闸管在各种电子电路中的应用;最后,对MCR100-6晶闸管的…

档案馆建设标准条文说明

第一章 总则 第一条 本条阐明了本标准的编制目的。 中国是一个历史悠久的文明古国,档案事业的发展源远流长。档案是人类活动的真实记录,是人们认识和把握客观规律的重要依据。借助档案,我们能够更好地了解过去、把握现在、预见未来。档案工…

工业机器视觉缺陷检测工作小结

工业机器视觉检测工作小结 (因为网上没有很系统的讲义和文档,都是零零散散的,因此,我自己尝试着总结一下、仅供参考) 你想知道的大概率在这都可以找到、相机的了解镜头的了解光源的了解传统算法DL深度学习方法 &#…

基于微信小程序渗透-反编译小程序

文章目录 一、概述二、使用电脑版微信获取小程序源码三、使用工具解密源码四、配置nodejs环境五、使用工具解包 一、概述 微信小程序渗透时,因为小程序没有网页端页面,所以不能直接访问抓包分析,如果需要抓包分析,那么一般就是用…

Spring:用 Spring 整合 MyBatis(Spring-MyBatis)代码整理

文章目录 Spring:Day 05Spring - MyBatis1. 依赖:pom.xml2. 外部配置文件:db.properties3. MyBatis 核心配置文件:mybatis-config.xml4. 实体类5. 接口:xxxMapper.java6. 实现类:xxxMapper.xml7. Spring 通…

ATA-4014高压功率放大器驱动超声马达测试应用

ATA-4014 高压功率放大器简介 ATA-4014是一款理想的可放大交、直流信号的单通道高压功率放大器。最大输出160Vp-p(80Vp)电压,452Wp功率,可以驱动高压功率型负载。电压增益数控可调,一键保存常用设置,为您提…

利用 PRIMO 重构 M87 黑洞图像,普林斯顿高等研究院成功将「甜甜圈」变身「金戒指」

内容一览:2019 年,「事件视界望远镜 (Event Horizon Telescope,简称 EHT)」全球研究团队发布了人类历史上第一张黑洞照片,受限于当时的观测条件,这张黑洞图像只呈现出一个模糊不清的轮廓。近日,天体物理学期…

打家劫舍 III——力扣337

文章目录 题目描述法一:动态规划 题目描述 法一:动态规划 问题简化:一棵二叉树,树上的每个点都有对应的权值,每个点有两种状态(选中和不选中),问在不能同时选中有父子关系的点的情况…

Kafka题集 - kafka术语面试题总结

文章目录 01. 什么是 Kafka?02. 为什么要用kafka?03. Kafka 消息引擎模型04. kafka 消费方式?05. Kafka 传输消息的编码格式?06. kafka 体系架构?07. kafka 消息和批次?08. kafka 主题和分区?09…

Weex中,关于组件的水平排列竖直排列居中对齐居左对齐居右对齐低部对齐顶部对齐布局对齐说明

容器内子组件排列方向 子组件竖直方向排列&#xff08;默认&#xff09; 子组件水平方向排列 <style> .container {flex-direction: row;direction: ltr; } </style>子组件在父组件容器中的对齐方式 我们主要使用两个属性实现子组件在父组件的对齐方式&#xff…

Qt之程序发布以及打包成exe安装包目录

Qt之程序发布以及打包成exe安装包 目录 一、简述二、设置应用程序图标三、发布程序四、打包程序 回到顶部 一、简述 Qt 项目开发完成之后&#xff0c;需要打包发布程序&#xff0c;而因为用户电脑上没有 Qt 配置环境&#xff0c;所以需要将 release 生成的 exe 文件和所依赖…

hiveSql调优

一、hiveSQL执行顺序 from … where … mapjoin … on … select&#xff08;筛选有用字段&#xff09; … group by ||… join … on … select&#xff08;筛选输出字段&#xff09; … having … distinct … order by … limit … union/union all|| 前是map阶段执行&…