Unity WebGL项目问题记录

news2024/10/5 17:21:20

一、资源优化

可通过转换工具配套提供的资源优化工具,将游戏内纹理资源针对webgl导出做优化。

工具入口:

工具介绍

Texture

搜索规则介绍

已开启MipMap: 搜索已开启了MipMap的纹理。

NPOT: 搜索非POT图片。

isReadable: 搜索已开启readable纹理。

MaxSize大于512: 搜素MaxSize大于512纹理。

修复规则讲解

注意: 每次修复时将当前所要修复资源的importer覆盖写入到Library/AssetImporterbak;

还原时,从Library/AssetImporterbak读取选中资源的importer设置并还原后,会删除Library/AssetImporterbak,并不是undo/redo逻辑

禁用readable:关闭readable

禁用mipmap:关闭mipmap

优化maxsize:勾选后,可选择优化maxsize的方式

改变纹理压缩格式:勾选后可修改纹理压缩格式

筛选列表结果展示

列表总览:描述资源个数和资源总内存

引用查找 选中一个资源,查找资源被引用关系

使用前后对比

修复资源前

修复资源后

可以发现资源总内存减少了很多。

二、使用Addressable Assets System进行资源按需加载

1.概述

对于Unity WebGL转换的小游戏启动耗时,资源下载通常是贡献最大的部分。这是由于手游APP往往很少针对首包资源进行特殊优化。因此,优化原则是:

首包资源量不超过5M。

资源按需延迟加载,拆分得尽量细。

2.Addressable在小游戏中的应用

2.1什么是Addressable Assets System

 Addressable特点如下:

低使用门槛:使用Addressable在开发前期就进入快速开发的阶段,使用任何你喜欢的资源管理技术,你都能快速的切换来Addressable系统中,几乎不需要修改代码。

依赖管理:Addressable系统不仅仅会帮你管理、加载你指定的内容,同时它会自动管理并加载好该内容的全部依赖。在所有的依赖加载完成,你的内容彻底可用时,它才会告诉你加载完成。

内存管理:Addressable不仅仅能记载资源,同时也能卸载资源。系统自动启用引用计数,并且有一个完善的Profiler帮助你指出潜在的内存问题。

内容打包:Addressable系统自动管理了所有复杂的依赖连接,所以即使资源移动了或是重新命名了,系统依然能够高效地找到准确的依赖进行打包。当你需要将打包的资源从本地移到服务器上面,Addressable系统也能轻松做到,几乎不需要任何代价。

2.2使用WXAssetBundleProvider节省内存

WXAssetBundle可以减轻iOS的内存压力,对于使用Addressable的项目,需要替换Provider来使用WXAssetBundle。

使用方式

下载WXAssetBundleProvider.cs,放到WX-WASM-SDK-V2/Runtime/目录下。

导入插件后会有WXAssetBundleProvider.cs缺依赖的报错,需要给WX-WASM-SDK-V2/Runtime 增加 Unity.ResourceManager 的引用。

进入AA的组设置修改Provider如下

最后重新导出 AA包 和 小游戏。

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

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

相关文章

为什么有的手机卡没有语音功能呢?

大家好,今天这篇文章为大家介绍一下,无通话功能的手机卡, 在网上申请过手机卡的朋友应该都知道,现在有这么一种手机卡,虽然是运营商推出的正规号卡,但是却屏蔽了通话功能,你知道这是为什么吗&am…

第六节:如何解决@ComponentScan只能扫描当前包及子包(自学Spring boot 3.x的第一天)

大家好,我是网创有方,继上节咱们使用了Component和ComponentScan的方法实现了获取IOC容器中的Bean,但是存在一个问题,就是必须把AppConfig和要扫描的bean类放在同一个目录下,这样就导致了AppConfig类和bean类在同一个目…

T4打卡 学习笔记

所用环境 ● 语言环境:Python3.11 ● 编译器:jupyter notebook ● 深度学习框架:TensorFlow2.16.1 ● 显卡(GPU):NVIDIA GeForce RTX 2070 设置GPU from tensorflow import keras from tensorflow.keras…

Dahlia Hart: Stylized Casual Character(休闲角色模型)

此包包含两个发型和两个服装,每个都有多种颜色选择。每个发型都适合与物理资源一起使用,并包含各种表情和音素混合形状。 下载:​​Unity资源商店链接资源下载链接 效果图:

自适应IT互联网营销企业网站pbootcms模板

模板介绍 一款蓝色自适应IT互联网营销企业网站pbootcms模板,该模板采用响应式设计,可自适应手机端,适合一切网络技术公司、互联网IT行业,源码下载,为您提供了便捷哦。 模板截图 源码下载 自适应IT互联网营销企业网站…

C++精解【9】

文章目录 大整数GMP概述GMP安装 [cygwin](https://cygwin.com/install.html)安装 gmpexample Eigen基本属性和运算 大整数GMP 概述 GMP GMP是一个用于任意精度算术的免费库,可对有符号整数、有理数和浮点数进行操作。除了运行GMP的机器的可用内存所暗示的精度外&…

【建设方案】工单系统建设方案(Word原件)

工单管理系统解决方案 1、工单创建:根据告警信息创建工单。 2、工单管理:列表形式展示所有工单信息及进度状态。 3、工单处理:对接收的工单进行处理反馈。 4、工单催办:根据工单时效自动发送工单催办消息通知。 5、工单归档&#…

鲲鹏arm服务器部署paddleOCR

1. 部署环境信息查看 1.1 操作系统 $ cat /etc/os-release PRETTY_NAME"UnionTech OS Server 20" NAME"UnionTech OS Server 20" VERSION_ID"20" VERSION"20" ID"uos" PLATFORM_ID"platform:uel20" HOME_URL&q…

数据结构与算法笔记:高级篇 - 搜索:如何用 A* 搜索算法实现游戏中的寻路功能?

概述 魔兽世界、仙剑奇侠传这类 MMRPG 游戏,不知道你玩过没有?在这些游戏中,有一个非常重要的功能,那就是任务角色自动寻路。当任务处于游戏地图中的某个位置时,我们用鼠标点击另外一个相对较远的位置,任务…

Java学习 - 布隆过滤器

前置需求 需求 已经有50亿个电话号码,现在给出10万个电话号码,如何快速准确地判断这些电话号码是否已经存在? 参考方案 通过数据库查询:比如MySQL,性能不行,速度太慢将数据先放进内存:50亿*8字…

用pycharm进行python爬虫的步骤

使用 pycharm 进行 python 爬虫的步骤:下载并安装 pycharm。创建一个新项目。安装 requests 和 beautifulsoup 库。编写爬虫脚本,包括获取页面内容、解析 html 和提取数据的代码。运行爬虫脚本。保存和处理提取到的数据。 用 PyCharm 进行 Python 爬虫的…

机器人控制系列教程之Simulink中模型搭建(1)

机器人模型获取 接上期:机器人控制系列教程之控制理论概述,文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport(urdf/S_Robot_urdf.urdf),MATLAB将自动打开Simulink以…

TCP单进程循环服务器程序与单进程客户端程序

实验目的 理解并掌握以下内容: 网络进程标识(即套接字地址)在Linux中的数据结构与地址转换函数。网络字节序与主机字节序的定义、转换以及相关函数在网络编程中的应用。数据结构内存对齐的基本规则,以及基于数据结构构建PDU的基本方法。TCP单进程循环服务器与单进程客户端的…

【ai】ubuntu18.04 找不到 nvcc --version问题

nvcc --version显示command not found问题 这个是cuda 库: windows安装了12.5 : 参考大神:解决nvcc --version显示command not found问题 原文链接:https://blog.csdn.net/Flying_sfeng/article/details/103343813 /usr/local/cuda/lib64 与 /usr/local/cuda-11.3/lib64 完…

【机器学习300问】133、什么是降维?有哪些降维的方法?

假如你有一本非常厚的书,每一章代表一个特征维度,而书中的故事(数据点)在每个章节(维度)都有详细的描述。但是,读者(模型)发现很难理解和记忆这个复杂的故事,…

视频监控业务平台LntonCVS国标视频综合管理平台功能及技术优势

随着安防行业的快速进步,传统的视频监控平台正在与先进的技术和互联网技术融合,包括5G通信、GIS、大数据、云计算、边缘计算、AI识别、智能分析和视频直播等。这些技术的整合形成了综合性视频监控管理平台,具备集中管理、多级联网共享、互联互…

在 UBUNTU 22.04 上逐步构建 Postal SMTP 服务器

构建 Postal SMTP 服务器来发送批量电子邮件是电子邮件营销人员的不错选择。Postal 功能非常强大,并拥有大量开发人员的支持。它是一个用 JavaScript 和 Ruby 编写的开源邮件服务器脚本。它可用于构建内部 SMTP 服务器,就像 Mailgun、Sendgrid、Mailchim…

数字信号处理实验四(FIR数字滤波器设计)

FIR数字滤波器设计(2学时) 要求: 设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8…

JeecgBoot新建模块

引言 jeecg-boot设置了demo, system等默认模块。在二次开发中,常常需要进行模块扩展。比如新增一个订单模块或支付模块。如何准确的新增模块,在此文进行记录。 步骤 新建模块 在项目点击右键,新建模块。 如下图。 注意:报名需…

arco disign vue 日期组件的样式穿透

问题描述: 对日期组件进行样式穿透. 原因分析: 如图,日期组件被展开时它默认将dom元素挂载到body下, 我们的页面在idroot的div 里层, 里层想要穿透外层是万万行不通的. 解决问题: 其实官网提供了参数,但是并没有提供例子, 只能自己摸索着过河. 对于日期组件穿透样式,我们能…